2013-03-27 82 views
1

因此實際上有兩個問題在這裏。從數據庫填充的JSP下拉列表

首先,在我的頁面上,用戶單擊一個按鈕添加一個新條目,將它們引導到一個JSP表單。 他們通過文本框填寫一些信息,然後有從我們的數據庫中提取數據的下拉菜單。
某些字段由基本驗證約束:

@NotNull(message="Version field may not be left blank") 

現在我碰上了用戶嘗試提交新條目的問題,與版本字段留空。 系統正確彈出消息,通知用戶他們必須輸入一個值,但是現在下拉列表爲空, 並且用戶必須返回一個頁面並重新開始讓他們再次加載數據。

相當多的代碼塊,這樣辛苦的知道如何錢多錢少發佈....但基本上'add'點擊被發現並以此進行處理:通過顯示

@RequestMapping(value = "/cmsattribute_add", method = RequestMethod.GET) 
public String Home(ModelMap model, HttpServletRequest request) { 

    List<CmsGroup> list = cmsGroupService.getCmsGroupData(); 
    TreeMap<Integer, String> entries = getCMSList(list); 
    model.addAttribute("entries", entries); 

    List<Attribute> attList = attributeService.getAttributeData(); 
    TreeMap<Integer, String> attResult = getAttributeList(attList);  
    model.addAttribute("attResult", attResult); 

    CmsAttribute cmsAttribute = new CmsAttribute(); 
    model.addAttribute("cmsAttribute", cmsAttribute); 
    return "/cmsattribute_insert"; 
} 

,然後我的JSP像這樣:

<tr> 
    <td><span class="required">*</span> CMS Group ID:</td> 
    <td> 
     <form:select path="cmsGroupId"> 
      <form:options items="${entries}" /> 
     </form:select> 
    </td> 
    <td><form:errors path="cmsGroupId" cssClass="required" /></td> 
</tr> 

我不知道該怎麼做:(

第二個問題: 更簡單的一個。對於其中一些表格,有一個從服務器填充的下拉菜單(與上面的方法相同),但是它是一個可選字段id,喜歡在下拉菜單中添加'blank'條目作爲默認頁面被加載,以便如果用戶不需要在該域中添加任何內容,那麼它將不會被傳回。

任何線索?

感謝球員

+0

任何人都有任何線索? :) – user2069834 2013-03-29 15:07:04

回答

0

在表單選項也許你可以改變每個代碼的使用..就像這樣。

<form:select path="cmsGroupId"> 
    <c:forEach var="d" items="${entries}"> 
     <form:options items="${d.name}" /> 
    </c:forEach> 
</form:select>