Spring Validation Using Annotation

Posted on 2009-11-06 18:14 shoppingbill 阅读(916) 评论(0)  编辑  收藏 所属分类: Spring

Spring Validation Using Annotation

在这个例子中你会学到用spring annotation 验证。当你用注解的controller类时。validate()方法不会自动调用。

当表单提交的时候onSubmit()方法会被调用.这里你需要首先调用UserValidator 的validate()方法,然后用hasErrors()

方法检查是否有错。如果有错,转发user到user注册表单并显示错误信息.如果没有错,显示是success界面.
下面是UserController类


01.package com.vaannila.web;
02. 
03.import org.springframework.beans.factory.annotation.Autowired;
04.import org.springframework.stereotype.Controller;
05.import org.springframework.ui.ModelMap;
06.import org.springframework.validation.BindingResult;
07.import org.springframework.web.bind.annotation.ModelAttribute;
08.import org.springframework.web.bind.annotation.RequestMapping;
09.import org.springframework.web.bind.annotation.RequestMethod;
10.import org.springframework.web.bind.annotation.SessionAttributes;
11. 
12.import com.vaannila.domain.User;
13.import com.vaannila.service.UserService;
14.import com.vaannila.validator.UserValidator;
15. 
16.@Controller
17.@RequestMapping("/userRegistration.htm")
18.@SessionAttributes("user")
19.public class UserController {
20. 
21.private UserService userService;
22.private UserValidator userValidator;
23. 
24.@Autowired
25.public UserController(UserService userService, UserValidator userValidator) {
26.this.userService = userService;
27.this.userValidator = userValidator;
28.}
29. 
30.@RequestMapping(method = RequestMethod.GET)
31.public String showUserForm(ModelMap model) {
32.User user = new User();
33.model.addAttribute("user", user);
34.return "userForm";
35.}
36. 
37.@RequestMapping(method = RequestMethod.POST)
38.public String onSubmit(@ModelAttribute("user") User user,
39.BindingResult result) {
40.userValidator.validate(user, result);
41.if (result.hasErrors()) {
42.return "userForm";
43.} else {
44.userService.add(user);
45.return "redirect:userSuccess.htm";
46.}
47.}
48. 
49.}

UserService和UserValidator用 @Autowired注解注入,spring bean 配置文件如下:

01.<?xml version="1.0" encoding="UTF-8"?>
02.<beans xmlns="http://www.springframework.org/schema/beans"
03.xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
04.xmlns:p="http://www.springframework.org/schema/p"
05.xmlns:context="http://www.springframework.org/schema/context"
06.xsi:schemaLocation="http://www.springframework.org/schema/beans
07.http://www.springframework.org/schema/beans/spring-beans.xsd
08.http://www.springframework.org/schema/context
09.http://www.springframework.org/schema/context/spring-context.xsd">
10. 
11.<bean id="viewResolver" class="org.springframework.web.servlet.view. InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/"p:suffix=".jsp" />
12. 
13.<bean id="messageSource" class="org.springframework.context.support. ResourceBundleMessageSource" p:basename="messages" />
14. 
15.<context:component-scan base-package="com.vaannila.web" />
16. 
17.<bean id="userService" class="com.vaannila.service.UserServiceImpl" />
18. 
19.<bean id="userValidator" class="com.vaannila.validator.UserValidator"/>
20. 
21.</beans>

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 6, comments - 0, trackbacks - 0, articles - 0

Copyright © shoppingbill