action中得到<s:optiontransferselect/>标签中的内容
struts2的 action中得到<s:optiontransferselect/>标签中的内容
关键字: struts2 action <s:optiontransferselect/>
最近用到struts2 <s:optiontransferselect/>标签,要求在action中获取<s:optiontransferselect/>标签中的内容
出现这个问题后,发现确实很难实现,所以就Google了下,但获取答案却不理想
但研究struts2的demo后,发现他们可以正常获取的,所以就研究了下,发现问题其实很简单:
在此,借用下Google时,搜索到的一个问题
Html代码
<s:form action="TestTagLib"> <s:optiontransferselect label="optiontransferselect Test" labelposition="top" list="{'thomas1','ada','lothar'}" name="leftList" addToLeftLabel="向左移动" addToRightLabel="向右移动" addAllToLeftLabel="left" addAllToRightLabel="right" doubleName="rightList" doubleList="{'Expert One-on-One J2EE Design and Development', 'JavaScript: TDefinGuide'}" /> <s:submit value="login"/> </s:form> <s:form action="TestTagLib"> <s:optiontransferselect label="optiontransferselect Test" labelposition="top" list="{'thomas1','ada','lothar'}" name="leftList" addToLeftLabel="向左移动" addToRightLabel="向右移动" addAllToLeftLabel="left" addAllToRightLabel="right" doubleName="rightList" doubleList="{'Expert One-on-One J2EE Design and Development', 'JavaScript: TDefinGuide'}" /> <s:submit value="login"/> </s:form> 然后提交到TestTagLibAction中,在action中设置了setter(),getter()方法,关键代码如下: private List leftList; private List rightList; public List getLeftList() { return leftList; } public void setLeftList(List leftList) { this.leftList = leftList; } public List getRightList() { return rightList; } public void setRightList(List rightList) { this.rightList = rightList; } 为什么在execute()方法中得不到 rightList的值? 其中rightList对应前面jsp页面中 <s:optiontransferselect/>的doublename="rightList"标签,代码如下: List list1=getRightList(); for(int i=0;i <list1.size();i++){ System.out.println(list1.get(i).toString()); }