2013-12-17 4 views
4
<div class="select_wrap"> 
    <select name="sampleselect" class="select_field" multiple="multiple" > 

     <option>Select Id </option> 
     <s:iterator value="userList" var="usrList" status="s"> 
     <option value=<s:property value="#usrList"></s:property>><s:property value="#usrList"></s:property></option> 

     </s:iterator> 
    </select> 
    </div>  
<br /><br /> 
      <s:submit value="Compliance Export" name="Export Data" align="left" action="exportExcelAction4"/> 

usrList становится заселен из базы данныхМульти выберите Опуститесь в Struts2

В моем классе действий

private List<String> sampleselect=new ArrayList<String>(); 

    public List<String> getSampleselect() { 
     return sampleselect; 
    } 


    public void setSampleselect(List<String> sampleselect) { 
     this.sampleselect = sampleselect; 
    } 

Но этот образец выбрать не получает заселен.

+0

Вам нужно заполнить '' не userList' usrList'. –

ответ

2

Атрибут list используется для получения итерируемого источника, а атрибут name используется для установки выбранного элемента. Также используйте тег <s:select/> для более чистого (и гораздо более простого) кода. Например:

Struts.xml

<action name="firstAction" class="foo.bar.FirstAction"> 
    <result>firstPage.jsp</result> 
</action> 

<action name="secondAction" class="foo.bar.SecondAction"> 
    <result>secondPage.jsp</result> 
</action> 

FirstAction.java

private List<String> userList; 

/* Getter and Setter */ 

public String execute(){ 
    // Load your data from database 
    userList = getMyService().findUserList(); 
    return SUCCESS; 
} 

FirstPage.jsp

<s:form action="secondAction" > 
    <div class="select_wrap"> 
     <s:select list = "userList" 
        name = "selectedItem" 
       cssClass = "select_field" 
       multiple = "multiple" /> 
    </div> 

    <s:submit value="Post your selection to second Action" /> 
</s:form> 

SecondAction.java

private String selectedItem; 

/* Getter and Setter */ 

public String execute(){ 
    log.debug("Selected item is: " + selectedItem); 
    return SUCCESS; 
} 

SecondPage.jsp

<div> 
    Selected item is: <s:property value="selectedItem" /> 
</div> 
+0

userList заполняется из базы данных. – teja

+0

я изменил к

\t
\t

\t \t \t \t \t \t, но до сих пор не работает – teja

+0

Im, получая этот тег ошибки 'select', поле 'list', name 'sampleselect': запрошенный ключ списка 'userList1' не может быть разрешен как тип collection/array/map/enumeration/iterator. Пример: люди или люди. {Name} - [неизвестное место] в моем классе действий – teja

0

Используйте Struts2 тег <s:select>, а не итератор элементов. Кроме того, ваша переменная sampleelect инициализируется, но в ней нет элементов.

Ваши действия должны иметь:

private List<String> sampleselect = Arrays.asList("some", "data", "items"); 

Тогда ваш JSP может быть:

<s:select list="sampleselect" multiple="true"/> 

Ref: http://struts.apache.org/release/2.3.x/docs/select.html

Смежные вопросы