我想在动作标记中为单个参数传递多个参数。
例如:
<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>
如何实现上述目标。
提前致谢 拉朱
答案 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 []声明为数组,这就是全部!