描述:实现用户注册功能,进行简单的数据验证及其国际化提示错误..
一、国际化设置
- <!-- 设置国际化属性文件及其默认编码
- 注意:未设置p:defaultEncoding="UTF-8"前页面出现过乱码
- -->
- <bean id="messageSource"
- class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
- p:basenames="/WEB-INF/messages/messages" p:defaultEncoding="UTF-8"
- p:cacheSeconds="0" />
- <!--
- 设置国际化修改拦截器
- -->
- <bean id="localeChangeInterceptor"
- class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
- <property name="paramName" value="locale" />
- </bean>
- <!--
- 这个本地化解析器检查客户端中的Cookie是否包含本地化信息。 如果有的话,就使用。
- 当配置这个解析器的时候,可以指定cookie名,以及cookie的最长生存期(Max Age)
- -->
- <bean id="localeResolver"
- class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
二、控制器(Controller)和验证器(Validator)
Controller:
- @RequestMapping(method = RequestMethod.POST)
- public String userRegister(UserBean userBean, BindingResult result, Model model) {
- //参照petclinic代码验证
- new UserBeanValidator().validate(userBean, result);
- if (result.hasErrors()) {
- model.addAttribute("userBean", userBean);
- return "register";
- }
- this.userService.addUser(userBean);
- return "registerSuccessfully";
- }
Validator:
- @Override
- public void validate(Object target, Errors errors) {
- // TODO Auto-generated method stub
- UserBean userBean = (UserBean) target;
- if(userBean.getCode().length() > 6 || userBean.getCode().length() < 3){
- //注意这里的code.error和message_en.properties里的设置对应的.
- errors.rejectValue("code", "code.error");
- }
- }
三、配置错误信息的国际化显示(message_en.properties)
- code.error = code must between 3 and 6...
四、注册页面
- <!-- 使用spring标签处理表单 --> <form:form
- modelAttribute="userBean" action="userBean.oxp" method="post">
- <legend><fmt:message key="welcome.register" /></legend>
- <p>Code:<br />
- <form:input path="code" /><font color="red" ><form:errors path="code" /></font></p>
- <p>Psw:<br />
- <form:password path="psw" /><form:errors path="psw" /></p>
- <p>Address:<br />
- <form:input path="address" /><form:errors path="address" /></p>
- <p><input type="submit" /><input type="reset"></input></p>
- </form:form>
效果:
转自:http://juyon.iteye.com/blog/707024
spring samples:https://src.springframework.org/svn/spring-samples/