2013-01-14 15 views
1

我設計一個jsp頁面,用戶可以像選擇下拉菜單中的值:使用用SpringMVC形式:選擇逗號分隔值綁定到多個下拉列表

ROW1:選擇「下拉菜單」

行2:選擇 「下拉菜單」

ROW3:選擇 「dropdown1」 「dropdown2」

其中:

下拉值{} 1,2,3,4,5,6,7

用戶可以從上述行中選擇值並保存表格。下次用戶查看頁面並從數據庫中檢索保存的值時,我想在下拉列表中顯示它們。對於 我使用Spring MVC的形式:選擇自動綁定

<form:select id="${id}" path="Mappings[${index}].userSetting"> 
      <c:forEach var="item" items="${dropdownValues}"> 
       <form:option value="${item.value}"><spring:eval expression="item" /></form:option> 
      </c:forEach> 
</form:select> 

代碼工作正常ROW1和行2只具有1個下拉結合。但是在Row3, 的情況下,Mappings [$ {index}] .userSetting返回類似於「2,3」(而不是單個值)的值,這些值來自下拉列表,但以逗號分隔。在這種情況下,由於顯而易見的原因 Spring MVC表單:select無法從下拉列表中選擇值,因爲在任何下拉列表中都找不到「2,3」。 我想要做的是分割值,以便從「2,3」,值「2」和「3」被選中,使Row3看起來像:

之前:選擇「dropdown1」「下拉2「 後:選擇」2「」3「

有沒有人有如何完成這一建議?

回答

2

你有沒有想過fn:split()函數。

這裏你可以做一個例子:

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 

<c:set var="row3Value" value="${fn:split(model.getMappings()[${index}].userSetting, ',')}" /> 

<form:select id="${id}" path="Mappings[${index}].userSetting"> 
    <c:forEach var="item" items="${dropdownValues}"> 
     <c:choose> 
      <c:when test="${row3Value[0] eq ${item.value}}"> 
       <form:option selected="true" value="${item.value}"><spring:eval expression="item" /></form:option> 
      </c:when> 

      <c:otherwise> 
       <form:option value="${item.value}"><spring:eval expression="item" /></form:option> 
      </c:otherwise 
     </c:choose> 
    </c:forEach> 
</form:select> 
+0

謝謝,這是我需要的。我早些時候嘗試過拆分函數,但無法使語法正確,這對我有很大的幫助。 – DiscDev