使用一个参数名称传递struts2操作中的多个值

时间:2010-04-02 18:20:14

标签: struts2 action

我想在动作标记中为单个参数传递多个参数。

例如:

<action name="question" class="com.xxx.xxx.action">    <param name="hint">abc</param>    <result name="success">Answers.jsp</result> </action>

我的动作中有hint(String)变量的getter和setter。

目前我可以将提示变量的参数值设为abc,如果我发送一个。

我想为同一个变量发送多个参数(提示)

ex:<param name="hint">abc, xyz</param>

如何实现上述目标。

提前致谢 拉朱

2 个答案:

答案 0 :(得分:1)

除了明显的黑客攻击外,我认为你不能这样做 例如,只需在您的映射中编写以上内容,并在您的操作中将字符串转换为数组

  String[] getHintsArray() {
       return getParam("hint").split("\\s*,\\s*");
   } 

答案 1 :(得分:1)

我在这里找到了最好的答案(请查看页面底部):
http://www.coderanch.com/t/494764/Struts/define-String-array-param-tag

如果由于某种原因导致链接断开,请执行以下操作:

<s:param name="queryType" value="new java.lang.String[]{'PRIMARY','SECONDARY'}"/>

如果您要提交<s:form>,则只需对多个参数使用相同的NAME,Struts2会自动创建字符串数组!

请记住在您的操作中创建正确的setter和getter,例如:

    public void setQueryType(String[] queryType){
        this.queryType = queryType;
    }

请注意,您将String []声明为数组,这就是全部!