springMVC之annotation优化

2014-11-24 10:24:21 · 作者: · 浏览: 0

1.在之前配置的spring配置文件中会有这样的代码:




这两句是注入开启映射的类。

在spring3.0后有了mvc标签,可以将上两句改为:

同样可以达到以上的结果。

2.在controller中我们是这样配置的:

package com.yx.controller.annotation;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloAnnotationController {

@RequestMapping(value="/user/adduser",method=RequestMethod.GET)
public ModelAndView addUser(){

return new ModelAndView("/annotationTest","result","add user");

}
@RequestMapping(value="/user/deluser")
public ModelAndView delUser(){

return new ModelAndView("/annotationTest","result","delete user");

}

}
这里面也有很多可以优化的:

(1).对于传输方法,在平时开发时没有必要必须规定是什么方法传输,也就是无论get还是post均可以运行。这样只要将“method=RequestMethod.GET”删掉即可。

(2).在没给个方法前面都会出现“/user”即为命名空间,这样代码会太重复。可以在类的前面加上“@RequestMapping("/user2")”

(3).在struts2中方法的返回值一般为String,在springMVC中也可以这样做。

最后controller的代码可以修改为:

package com.yx.controller.annotation;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/user2")
public class HelloAnnotationController2 {

@RequestMapping("/adduser")
public String addUser(HttpServletRequest request){
request.setAttribute("result","add user 方法");
return "/annotationTest";

}
@RequestMapping("/deluser")
public String delUser(HttpServletRequest request){
request.setAttribute("result","delete user上述");
return "/annotationTest";

}

}