如何使用s:inputtransferselect struts标记中的选定值

时间:2013-07-26 12:50:58

标签: struts2

<s:inputtransferselect/> Struts标签的情况下,我无法找到保存所选值的属性。我提到to the documentation但我仍然无法确定哪个属性完全包含所选值。

对于<s:optiontransferselect/>,我能够从 doubleId 属性中获取所选值。我正在寻找<s:inputtransferselect/>的类似属性。

1 个答案:

答案 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没有触发,所以我不得不为此编写我自己的事件,它可能是在提交事件发生冲突时与我的其他人一起做。