1

所以实际上这里有两个问题。

首先,在我的页面上,用户单击一个按钮以添加一个新条目,该条目将他们定向到 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'因此,如果用户在提交后不需要在该字段中添加任何内容,则不会从该字段传回任何内容。

有什么线索吗?

多谢你们

4

1 回答 1

0

在表单选项中,也许您可​​以更改每个代码的用途……就像这样。

 <form:select path="cmsGroupId">
    <c:forEach var="d" items="${entries}">
       <form:options items="${d.name}" /> 
    </c:forEach>
 </form:select>
于 2013-08-30T03:36:39.967 回答