2014-09-28 60 views
-1

我有一个具有以下的CheckBoxList选择最喜欢的水果的index.jsp主页:Struts2的类型转换的CheckBoxList

friuts that i like : <s:checkboxlist name="myFruits" list="{'apple','mango','orange'}"/> 
在actionssupport文件

,我已经使用了“myFruits”字符串类型。 :

public class Action1 extends ActionSupport 
{ 
    String myFruits; 
    public String getMyFruits() { 
     return myFruits; 
    } 

    public void setMyFruits(String myFruits) { 
     this.myFruits = myFruits; 
    } 

public String execute() 
    { 

     return "success"; 
    } 

} 

和读取所选择的值的results.jsp

my favorite fruit is:<br> 
    <s:property value="myFruits"/> 

输出正确地出现。

my favorite fruit is: 
apple, mango 

,但我无法理解如何选择,例如苹果和芒果的多重价值越来越存储在值栈与字符串myFruit类型。难道这不是一个List或数组?

为什么上面的代码只用一个String类型就可以正常工作以保存多个String名称?

+0

如果它是字符串,那么它不包含多个值。它是一个用逗号分隔值的字符串。 – 2014-09-29 09:26:41

回答

0

但我无法理解如何选择,例如apple多重价值和mango越来越存储在值栈与字符串myFruit类型。难道这不是一个List或数组?

您有一个名称为myFruits的字符串属性和具有相同名称的参数。 Struts正在尽最大努力填充该属性,如果该参数有多个值,但属性是单个字符串类型,则可以将它们转换为字符串,并用逗号分隔值。

另一方面,如果您有一个数组或列表属性类型,值将被设置为数组或列表。

+0

该类型由默认类型转换器确定,如果它可以找到适合该属性的setter。 – 2015-01-11 17:34:00