<s:inputtransferselect/>
在Struts Tag的情况下,我无法找到包含所选值的属性。我参考了文档,但我仍然无法确定哪个属性恰好包含所选值。
在 的情况下<s:optiontransferselect/>
,我能够从doubleId属性中获取选定的值。我正在寻找类似的属性<s:inputtransferselect/>
。
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 将无法用于您的页面。
要查看此标记的所有可用属性参数,请参阅文档。
您的操作 .java 文件应包含一个列表,该列表对应于您的 inputtransferselect 的键和列表。要获取值,请使用列表的 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 没有触发,所以我不得不为此编写自己的事件,这可能与我的其他关于提交事件的冲突。