Guillaume, I don't see a Food getter and setter on your action.
Guillaume Bilodeau on 23/09/07 18:48, wrote:
Hi all, I'm quite new to Struts2 and so far I love what I see. Currently I'm having a problem trying to map a checkboxlist based on a set of enums to a model object nested in my action. Here's what I have now: JSP:
[s:form action="createSimpleFood.go" method="post" namespace="/nutrition"] [s:textfield key="food.name" name="model.name" /][br/] [s:select key="food.group" name="model.group" list="availableGroups" /] [s:checkboxlist key="food.nutrients" name="model.selectedNutrients" list="availableNutrients" /] [s:submit key="nutrition.foods.simpleFoods.create.submit" /] [/s:form]
Action: public class CreateSimpleFoodAction { private FoodService foodService; private SimpleFoodCreationRequest foodCreationRequest = new SimpleFoodCreationRequest(); public CreateSimpleFoodAction() { } public String prepareNewSimpleFood() { return Action.SUCCESS; } public String createSimpleFood() { String result; try { foodService.createSimpleFood(foodCreationRequest); result = Action.SUCCESS; } catch (FoodException e) { result = Action.INPUT; } return result; } public SimpleFoodCreationRequest getModel() { return foodCreationRequest; } public List getAvailableGroups() { return Arrays.asList(Group.values()); } public List getAvailableNutrients() { return Arrays.asList(Nutrient.values()); } public void setFoodService(FoodService foodService) { this.foodService = foodService; } } Model: public class SimpleFoodCreationRequest implements SimpleFoodPropertyProvider { private String name; private Group group; private Set nutrients = new HashSet(); public SimpleFoodCreationRequest() { } public Group getGroup() { return group; } public void setGroup(Group group) { this.group = group; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void setSelectedNutrients(Nutrient[] selectedNutrients) { nutrients.clear(); for (Nutrient n : selectedNutrients) { nutrients.add(n); } } public Nutrient[] getSelectedNutrients() { return nutrients.toArray(new Nutrient[0]); } public Set getNutrients() { return Collections.unmodifiableSet(nutrients); } } CreateSimpleFoodAction-conversion.properties: model.group=com.opensymphony.xwork2.util.EnumTypeConverter model.selectedNutrients=com.opensymphony.xwork2.util.EnumTypeConverter Element_model.selectedNutrients=com.gb1.healthcheck.domain.nutrition.Nutrient When I submit this form, the selected checkbox list items are not mapped to my SimpleFoodCreationRequest object. The console shows the standard message "error setting 'model.selectedNutrients' with..." Any ideas? Thanks! GB
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]