2013-07-26 17 views
0

我無法找到在<s:inputtransferselect/> Struts標記的情況下保存選定值的屬性。我提到了to the documentation,但我仍然無法確定哪個屬性完全保留了所選值。如何使用s中的選定值:inputtransferselect struts標記

<s:optiontransferselect/>的情況下,我能夠從doubleId屬性中獲得選定值。我正在爲<s:inputtransferselect/>尋找類似的屬性。

+1

從未使用該標籤,但我猜想選定的值將通過名稱屬性發送和映射爲任何其他標籤......或者您是否想要在頁面中訪問它們?那麼你應該參考生成的代碼,而不是JSP代碼 –

+0

name屬性只給出了最後一個選定的值。我沒有得到多個選定的值。 – chachai

+0

你是指向一個List還是一個變量? –

回答

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文件應該包含一個列表,該列表將對您的inputtransfers的鍵和列表進行corisponds選擇。爲了得到值的持有,使用列表的獲取:

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自動選擇對錶單提交的所有選項是不因此我必須爲此編寫自己的事件,這可能與我的其他事件在提交事件衝突方面有關。

相關問題