我正在使用 Struts2 UpDownSelect 组件。 但是,当我提交表单而不是获取逗号分隔的排序列表时,我只得到列表中最后选择的一个元素。
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>
Action 类:
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 中我只获得列表的一个元素。 我期待以逗号分隔形式的完整列表。 我搜索了很多地方没有发现有人有同样的问题 预先感谢您的帮助。
最佳答案
您需要添加<s:head/>
标记到您的 JSP,这会添加 Struts2 utils.js
。该文件包含 <s:updownselect>
所需的 javascript 函数。标签才能正常工作。
关于javascript - struts2 UpDownselect 未在表单提交时提供完整的有序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21458284/