0

<s:inputtransferselect/>在Struts Tag的情况下,我无法找到包含所选值的属性。我参考了文档,但我仍然无法确定哪个属性恰好包含所选值。

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

4

1 回答 1

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 将无法用于您的页面。

要查看此标记的所有可用属性参数,请参阅文档

您的操作 .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 没有触发,所以我不得不为此编写自己的事件,这可能与我的其他关于提交事件的冲突。

于 2017-06-16T12:51:42.210 回答