Je suis à l'aide des entretoises 2 et je l'ai mis en place mon code comme ceci:Struts2 liste ne peut pas être résolue pour une vue
classe Action:
public class OrderDetailAction extends BaseActionSupport {
private Collection<ShippingAddress> shippingAddressList;
<the getters and setters here>
private Collection<ShippingAddress> billingAddressList;
<the getters and setters here>
public String displayCreate() {
LOGGER.info("DISPLAY CREATE CALLED");
populateForiegnFields();
LOGGER.info("populate foreign fields done calling");
return SUCCESS;
}
private void populateForiegnFields(){
LOGGER.info("ENTERED POPULATE FOREIGN FIELDS");
ShippingAddressService shippingAddressService = ServiceFactory.getInstance().getShippingAddressService();
shippingAddressList = shippingAddressService.getShippingAddresss();
if(shippingAddressList == null) {
LOGGER.info("shipping address list IS NULL");
} else {
LOGGER.info("shipping address list IS NOT NULL. CONTENTS:");
}
getSession().put("shippingAddressList", shippingAddressList);
billingAddressList = shippingAddressService.getShippingAddresss();
if(billingAddressList == null) {
LOGGER.info("billingAddressList IS NULL");
} else {
LOGGER.info("billingAddressList IS NOT NULL. CONTENTS:");
}
getSession().put("billingAddressList", billingAddressList);
}
Et l'extrait de mon Créer une commande Détail JSP est:
<s:form>
<div class="form-group">some other fields</div>
<div class="form-group">
<s:select label="SHIPPINGADDRESSID" list="shippingAddressList" listKey="ID" listValue="ID" name="shippingAddress" ></s:select>
</div>
<div class="form-group">
<s:select label="BILLINGADDRESSID" list="billingAddressList" listKey="ID" listValue="ID" name="billingAddress" ></s:select>
</div>
<input class="btn btn-success" type="submit" name="action:createOrderDetail" value="submit" id="displayCreateOrderDetail_createOrderDetail"/>
<input class="btn btn-default" type="submit" name="action:getOrderDetails" value="cancel" id="displayOrderDetail_getOrderDetails" />
</s:form>
L'erreur que je reçois est la suivante:
tag 'select', champ 'liste', nom 'shippingAddress': La liste non demandée clé 'shippingAddressList' pourrait être résolu en tant que collection /tableau/carte/Enumeration/type iterator
Mais ce qui embrouille moi, surtout après avoir regardé cette erreur sur d'autres articles personnes ont suggéré que le shippingAddressList peut ne jamais avoir été instancié mais quand j'ai vérifié les fichiers journaux que j'ai écrit ci-dessus, il n'était pas nul et à un moment, j'ai également enregistré les valeurs de shippingAddressList.
Y at-il d'autres raisons pour lesquelles je pourrais avoir cette erreur?
Merci d'avance.
Est-ce que le résultat jsp de 'OrderDetailAction'? Avez-vous 'public Collection getShippingAddressList()' dessus? –
Je ne suis pas sûr de ce que vous voulez dire par le résultat de 'orderDetailAction' mais oui, shippingAddressList a des getters et setters publics bien. Lorsque j'ai vérifié les fichiers journaux, lorsque la page JSP était chargée, elle appelait des méthodes à l'intérieur de 'orderDetailAction'. – aBrokenSniper
Je voulais dire que si jsp a été défini comme le résultat de l'action ci-dessus dans 'struts.xml'. –