32 }
3 return new ModelAndView(newRedirectView(\3 // 采用重定向方式跳转页面 3
// 重定向还有一种简单写法 4
35 // return new ModelAndView(\36 } 37
38 @RequestMapping(\
39 public ModelAndView testLogin3(User user) {
// 同样支持参数为表单对象,类似于Struts的ActionForm,User40
不需要任何配置,直接写即可 41 String username = user.getUsername(); 42 String password = user.getPassword(); 43 int age = user.getAge(); 44
if (!\45
|| age < 5) { 46 return new ModelAndView(\47 }
48 return new ModelAndView(\49 } 50
@Resource(name = \获取51
applicationContext.xml中bean的id为loginService的,并注入 privateLoginService loginService; //等价于spring传统注入方式52
写get和set方法,这样的好处是简洁工整,省去了不必要得代码 53
54 @RequestMapping(\55 public String testLogin4(User user) { 56 if (loginService.login(user) == false) { 57 return \58 }
59 return \60 } 61 }
以上4个方法示例,是一个Controller里含有不同的请求url,也可以采用一个url访问,通过url参数来区分访问不同的方法,代码如下:
01 package controller; 02
03 import org.springframework.stereotype.Controller;
04 import org.springframework.web.bind.annotation.RequestMapping; 05 import org.springframework.web.bind.annotation.RequestMethod; 06
07 @Controller
@RequestMapping(\指定唯一一个*.do请求关联到08
该Controller 09 public class TestController2 { 10
11 @RequestMapping
public String testLogin(String username, String 12
password, int age) {
// 如果不加任何参数,则在请求/test2/login.do时,便默认执行13
该方法 14
if (!\15
|| age < 5) { 16 return \17 }
18 return \19 } 20
21 @RequestMapping(params = \22 public String testLogin2(String username, String password) { 23 // 依据params的参数method的值来区分不同的调用方法 24 // 可以指定页面请求方式的类型,默认为get请求 25
if (!\26 { 27 return \28 }
29 return \
30 } 31
32 @RequestMapping(params = \
public String testLogin3(String username, String 33
password, int age) {
if (!\34
|| age < 5) { 35 return \36 }
37 return \38 } 39 }
其实RequestMapping在Class上,可看做是父Request请求url,而RequestMapping在方法上的可看做是子Request请求url,父子请求url最终会拼起来与页面请求url进行匹配,因此RequestMapping也可以这么写:
01 package controller; 02
03 import org.springframework.stereotype.Controller;
04 import org.springframework.web.bind.annotation.RequestMapping; 05
06 @Controller
07 @RequestMapping(\父request请求url 08 public class TestController3 { 09
@RequestMapping(\子request请求url,拼接后等价于10
/test3/login.do public String testLogin(String username, String 11
password, int age) {
if (!\12
|| age < 5) { 13 return \14 }
15 return \16 } 17 }
三、结束语
掌握以上这些Spring MVC就已经有了很好的基础了,几乎可应对与任何开发,在熟练掌握这些后,便可更深层次的灵活运用的技术,如多种视图技术,例如 Jsp、Velocity、Tiles、iText 和 POI。Spring MVC框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。