我在表单中有一个optiontransferselect但我不知道如何在我的行动中将所选项目放回到正确的列表中。
我需要获取所有访问过的国家/地区ID的列表。我尝试在我的行动List(整数)countriesVisitedId;但它返回nullPointerException。然后我尝试了Integer id,但它返回null。
这就是我所拥有的:
s:optiontransferselect
label="Select visited countries"
name="countriesNotVisitedId"
leftTitle="Not visited countries"
rightTitle="Visited Countries"
list="%{countriesNotVisited}"
listKey="id"
listValue="name"
headerKey="countryNotVisitedId"
headerValue="--- Please Select ---"
doubleName="countriesVisitedId"
doubleList="%{countriesVisited}"
doubleHeaderKey="countryVisitedId"
doubleHeaderValue="--- Please Select ---"
doubleListKey="id"
doubleListValue="name" />
如何在行动中获取所访问国家/地区的整数ID列表?
答案 0 :(得分:1)
这是我尝试的,它运作正常。
步骤1:JSP从左侧选择国家到右手。
<s:optiontransferselect
label="Favourite Characters"
name="leftSide"
id="left"
leftTitle="Left Title"
rightTitle="Right Title"
list="%{countriesNotVisited)"
multiple="true"
headerKey="headerKey"
doubleList="{}"
doubleId="right"
doubleName="rightSide"
doubleHeaderKey="doubleHeaderKey"
doubleMultiple="true" />
第2步:Javascript代码自动选择右侧的所有数据。
function selectall()
{
var list = document.getElementById("right");
for (var i = 0; i < list.options.length; i++)
{
alert(list.options[i].value)
list.options[i].selected = true;
}
var form = document.getElementById("right");
form.submit();
return true;
}
步骤3:从JSP端调用此函数提交。
<s:submit id="submitid" value="Submit" action="insert" onclick="selectall()"/>
步骤4:在操作中,使左侧和右侧的对象名称的getter和setter采用字符串而不是字符串数组。
private String leftSide;
private String rightSide;
public String getLeftSide() {
return leftSide;
}
public String getRightSide() {
return rightSide;
}
public void setRightSide(String rightSide) {
this.rightSide = rightSide;
}
public void setLeftSide(String leftSide) {
this.leftSide = leftSide;
}
现在,如果您尝试在操作中打印值,您将获得值:
System.out.println("right side list " + ad.getRightSide());
答案 1 :(得分:1)
我正在墙上敲我的脑袋,想知道我做错了什么。这很简单
doubleName =“fields”是返回的标记字段
public void setFields(String fields){这是您的动作类中需要的内容。
我没有意识到的是需要选择元素才能被发回。或者简单地在标题中使用ajax
答案 2 :(得分:0)
在你的行动中:
public void setCountriesVisitedId(String[] countriesVisitedId) {
this.countriesVisitedId = countriesVisitedId;
}