【问题标题】:Struts2 type conversion CheckboxlistStruts2 类型转换 Checkboxlist
【发布时间】:2014-09-28 09:21:16
【问题描述】:

我有一个 index.jsp 主页,其中包含以下复选框列表来选择最喜欢的水果:

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

在操作支持文件中,我使用了“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

但我无法理解选择的多个值(例如 apple 和 mango)如何以 String myFruit 类型存储在 valuestack 中。这不应该是List 还是数组?

为什么上面的代码只使用 String 类型来保存多个 String 名称?

【问题讨论】:

  • 如果它是字符串,那么它不包含多个值。它是一个字符串,其中值用逗号分隔。

标签: struts2 checkboxlist


【解决方案1】:

但我无法理解选择的多个值(例如 applemango 是如何以 String myFruit 类型存储在 valuestack 中的。这不应该是List 还是数组?

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

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

【讨论】:

  • 类型由默认类型转换器确定,如果它可以找到适合该属性的setter。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多