在spring中使用Textbox时会添加额外的字符(,)

时间:2016-11-07 12:53:27

标签: spring html5 spring-mvc

我是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);
        }

1 个答案:

答案 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>

路径属性仅用于输入,选择,复选框...而不是静态值作为标签,跨度...