2014-01-30 1 views
1

Я использую компонент Struts2 UpDownSelect. Но когда я отправляю форму вместо получения разделенного сортировкой списка запятой, я собираю только один элемент, который был последним выбран в списке.struts2 UpDownselect не указывая полный упорядоченный список в форме submit

Jsp:

<div class="search-area"> 
    <s:form id="saveTableOrder" method="post" action="save-operator-table-order" name="tableOrderForm" > 
     <div class="inputField"> 
      <s:select id="operatorSelect" name="selectedOperator" value="selectedOperator" key="operator" list="operators" listKey="operatorName" listValue="operatorName" labelposition="left" onChange="this.form.submit()"/> 
     </div> 

     <div class="inputField"> 

      <s:updownselect name="tableOrder" list="tablesOrder" key="manageOrder" moveDownLabel="Down" moveUpLabel="Up" value="tableOrder" labelposition="left" ></s:updownselect> 
     </div> 

     <div class="submitButtons"> 
      <s:submit key="general.button.save" /> 
      <input id="operator-table-order-cancel" type="submit" name="action:cancel-operator-table-order" value="<s:property value="getText('general.button.cancel')"/>" /> 
     </div> 

    </s:form> 
</div> 

Класс действия:

public class ManageTableOrderAction extends BOActionSupport { 



    private String tableOrder; 

    private List<OperatorDTO> operators; 

    private String selectedOperator; 

    List<String> order = new ArrayList<>(); 


    @Override 
    @SkipValidation 
    public String execute() { 
     init(); 
     return SUCCESS; 
    } 


    private void init() { 
     //something 
      order.add("one"); 
      order.add("one"); 
      ....... 
    } 


    public String saveTableOrder() { 
     if (tableOrder != null && !tableOrder.isEmpty()) { 
      tableOrder = lobbyTableService.saveTableOrder(selectedOperator, tableOrder); 
     } 
     return SUCCESS; 
    } 


    public String cancelTableOrder() { 
     return SUCCESS; 
    } 


    public List<OperatorDTO> getOperators() { 
     init(); 
     return operators; 
    } 


    public void setOperators(List<OperatorDTO> operators) { 
     this.operators = operators; 
    } 


    public String getSelectedOperator() { 
     return selectedOperator; 
    } 


    public void setSelectedOperator(String selectedOperator) { 
     this.selectedOperator = selectedOperator; 
    } 


    public String getTableOrder() { 
     return tableOrder; 
    } 


    public void setTableOrder(String tableOrder) { 
     this.tableOrder = tableOrder; 
    } 


    public List<String> getTablesOrder() { 
     return order; 
    } 


    public void setTablesOrder(List<String> tablesOrder) { 
     this.order = tablesOrder; 
    } 

Теперь при нажатии кнопки отправки. Моя форма отправляется, но в tableOrder я получаю только один элемент списка. Я ожидал, что полный список будет разделен запятой. Я много искал, где нашел никого, имеющего ту же проблему Заранее спасибо за помощь.

+0

Какая версия Struts2? –

+0

Версия: 2.3.15 – Coder

ответ

1

Вам нужно добавить тег <s:head/> на ваш JSP, который добавляет Struts2 utils.js. Этот файл содержит функции javascript, необходимые для правильной работы тега <s:updownselect>.

+0

Вы спасли моего человека жизни. Большое спасибо. – Coder

+0

@nimit: Добро пожаловать. :) –

+0

Вы решили работать. Однако после добавления . Каждый раз после входа в систему я вижу struts utils.js в своем браузере. Чем я снова должен изменить URL, а затем он работает нормально. Поэтому после каждого входа в систему я получаю эту страницу один раз .URL: http: // localhost: 8080/backoffice/struts/utils.js У вас есть представление, что я делаю – Coder

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