我是JSP和Spring的新手。我想以弹簧形式使用文本框插入用户ID(U0005),但它存储(,U0005)。从哪里","插入? 我写的代码是:
/ *在Register.jsp中:* /
<c:url var="addAction" value="/libUsr/add"></c:url>
<form:form action="${addAction}" commandName="libUsr">
<table>
<tr>
<td>
<form:label path="id">
<spring:message text="ID" />
</form:label>
</td>
<td><form:input path="id" required="true" /></td>
</tr>
</table>
</form:form>
/*
In UserController.java:
*/
@RequestMapping(value= "/libUsr/add", method = RequestMethod.POST)
public String addLibUsr(@ModelAttribute("libUsr") LibUsr libUsr){
libUsrDAO.saveOrUpdate(libUsr);
return "redirect:/register";
}
/*
In DAOImpl:
Saving the data through DAOs
*/
@Transactional
public void saveOrUpdate(LibUsr libusr) {
sessionFactory.getCurrentSession().saveOrUpdate(libusr);
}
答案 0 :(得分:0)
你的问题是这个标签:
<form:label path="id">
当您将属性 path 添加到一个不会存储任何值的标签时,spring会尝试获取该值并返回empty,yourID。
将标签的路径属性更改为:
<form:label for="id">
<spring:message text="ID" />
</form:label>
如果要在该标签中显示id的值,请使用:
<label>${yourObject.id}</label>
或
<label th:value="${yourObject.id}"></label>
路径属性仅用于输入,选择,复选框...而不是静态值作为标签,跨度...