最近正在深入的学习SSM框架,本节就对SpringMVC常用的注解进行一些总结。
- @Controller
- @RequestMapping
- @PathVariable
- @RequestParam
- @ResponseBody
@Controller
Controller作为控制器负责处理请求,相当于servlet的功能。
通常使用@Controller定义控制器
@Controller//定义控制器
public class controllor {
}
并且需要在xml文件中加入以下配置
<context:component-scan base-package="com.hp.controllor">
</context:component-scan>
com.hp.controllor 是你所定义的控制器的所在包名。这段代码的意思就是自动扫描该包下的组件。
@RequestMapping
RequestMapping 从英文上解释就是请求映射。先看下面的代码
@RequestMapping("/testone2")
public String testone2()
{
System.out.println("1111");
return "";
}
我在地址栏上请求地址 http://localhost:8080/Familyandteachonline/testone2
1111//输出结果
就会请求执行这个testone2()这个方法,这就是它的映射作用。这里解释一下,这个方法名字是什么无所谓,不一定非得和RequestMapping 里面一样。
@PathVariable
PathVariable 英文翻译过来叫做地址变量,什么意思呢,他可以将你请求的地址某一部分或者多个部分作为变量使用,下面看例子。
@RequestMapping(value="/{param}/testone.do")
public String testone1(@PathVariable String param)
{
System.out.println(param);
return “ ”;
}
下面我的请求地址为 http://localhost:8080/Familyandteachonline/222/testone.
控制台显示的值为
222//显示结果
@RequestParam
RequestParam 请求参数,将请求的参数绑定到方法中的参数上,也就是相当于 对参数的“改名”,下面看例子
@RequestMapping(value="/testone.do")
public String testone1(@RequestParam(value="param") String id)
{
System.out.println(id);
return "";
}
@ResponseBody
通常用作将前后端异步请求时(ajax技术),return 作为返回值,传递给前台。举个例子吧。
@RequestMapping(value="/testone.do")
public String testone1(@RequestParam(value="param") String id)
{
System.out.println(id);
return "123";
}
上述例子在请求后,跳转到123.jsp页面,但是此时你如果加上@ResponseBody
@RequestMapping(value="/testone.do")
@ResponseBody
public String testone1(@RequestParam(value="param") String id)
{
System.out.println(id);
return "123";
}
此时请求的话,就不跳转123.jsp 而123将作为一个字符传递给前台,通常前台通过ajax技术与后台进行交互的时候采用这个方式,向前台返回所需要的值。