在<s:inputtransferselect/>
Struts标签的情况下,我无法找到保存所选值的属性。我提到to the documentation但我仍然无法确定哪个属性完全包含所选值。
对于<s:optiontransferselect/>
,我能够从 doubleId 属性中获取所选值。我正在寻找<s:inputtransferselect/>
的类似属性。
答案 0 :(得分:0)
Inputtransferselect创建一个输入字段,一个多选项选择列表以及一些可在选择列表中添加和删除的按钮。当您提交表单时,会触发一些javascript来选择选择列表中的所有选项,这些选项随后出现在java端的列表中。
这是一个例子。
您的.jsp文件:
<s:inputtransferselect
key="cartoonCharacters"
addLabel="Add element"
removeLabel="Remove element"
removeAllLabel="Remove all elements"
upLabel="Move up"
downLabel="Move down"
leftTitle="Add Character"
rightTitle="Existing Characters"
list="cartoonCharacters"
/>
请确保您的.jsp包含<s:head/>
标记,否则您的网页将无法使用inputtransferselect工作所需的JavaScript。
要查看此标记的所有可用属性参数,请参阅documentation。
您的操作.java文件应包含一个列表,该列表与您的inputtransferselect的键和列表相对应。要掌握这些值,请使用list的getter:
public abstract class MyAction extends AbstractAction
{
private List<String> cartoonCharacters = new ArrayList<>();
public MyAction()
{
cartoonCharacters.add("Popeye");
cartoonCharacters.add("Superman");
cartoonCharacters.add("Scoobydoo");
}
public List<String> getCartoonCharacters()
{
return this.cartoonCharacters;
}
public void setCartoonCharacters(List pCartoonCharacters)
{
this.cartoonCharacters = pCartoonCharacters;
}
public String execute() throws Exception
{
return SUCCESS;
}
}
我还应该注意到,在我的实现中我没有让它正常工作 - 自动选择表单提交上的所有选项的javascript没有触发,所以我不得不为此编写我自己的事件,它可能是在提交事件发生冲突时与我的其他人一起做。