2015-11-01 137 views
1

我有一个动作就是喜欢设置多个JavaBeans属性选择

public class MyAction{ 
    private List<MyObject> objectList; 
    //Public Getters and Setters 
} 

而且MyObject是象:

public class MyObject { 
    private String propertyA; 
    private String propertyB; 
} 

下一个,我有一个jsp,映射到objectList一个<s:select/>名单。

<s:select name = "objectList" 
      list = "objectList" 
     listKey = "propertyA" 
    listValue = "propertyB" 
     value = "%{objectList.{propertyA}}" /> 

但每当我后我的形式把它返回一个input结果以下消息:

无效的字段值字段“链表类”

什么是正确的方法将这些值传递给动作,以便设置我的List的正确属性? (!)

回答

0

除了用同一个列表,源和目标,并在其上的列表投影作为值的巫术,错误的是:

你上市MyObject,显示propertyA的价值,并使用propertyB作为关键。

但是,当您发布选择时,您将张贴propertyB的数组,而不是数组MyObject

那么你应该做这样的:

@Getter   private List<MyObject> sourceObjectList; 
     @Setter private List<String> selectedObjectList; 
<s:select name = "selectedObjectList" 
      list = "sourceObjectList" 
     listKey = "propertyA" 
    listValue = "propertyB" 
     value = "%{sourceObjectList.{propertyA}}" /> 

(龙目注释只是为了更清晰)

+1

..did工作? –

+1

我就在上面。我使用相同的列表仅用于说明目的。 –

+0

好的,但问题是,一个对象列表,而不是一个字符串列表 –