1、@RequestMapper("")
@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法
例如:
@Controller @RequestMapping(value = "/login") public class TestController extends BaseController { private final Logger log = LoggerFactory.getLogger(TestController.class); // @ResponseBody //将return的返回值返回到jsp界面 @RequestMapping("/test") public String test(ModelMap model) { String xx = "$$$$$$$$$$$$$"; model.put("testURL", xx); log.error("test:" + xx); return "login/test"; } }
其中当URL=/login/test时 系统就会访问TestController类下面test方法,
在本地访问 http://localhost:8080/login/test就会返回(跳转)到“ login/test.jsp ”页面。
2、@ResponseBody
@ResponseBody注解标识该方法返回的结果直接写入HTTP响应正文(ResponseBody)中,一般在异步获取数据时使用,比如;
save方法保存完毕数据之后返回保存成功的信息。
3、@RequestBody
@RequestBody注解则是将HTTP请求正文插入到方法中,使用合适的HttpMessageConverter将请求体写入某个对象中去
@ResponseBody public Person login(@RequestBody Person person) { // 将请求中的 datas 写入 Person 对象中 return person; // 不会被解析为跳转路径,而是直接写入 HTTP 响应正文中 }
这个知识点同样的需要了解的是页面异步请求的方式
function login() { var datas = json 文本数据格式 可以采用序列化的方式进行生成 也可以自己进行拼凑;
/*
$("#fm").serialize(),
通过<form id="fm" class="form-horizontal">选择器id 查找到控件,调用函数进行序列化
这是jQuery ajax的序列化 注意:元素必须使用 name 属性,通过name属性来进行值与属性的对应
*/
$.ajax({ type : 'POST', contentType : 'application/json', url : "${pageContext.request.contextPath}/person/login", processData : false, dataType : 'json', data : datas, success : function(data) { alert("id: " + data.id + "name: " + data.name + "status: "+ data.status); }, error : function() { alert('Sorry, it is wrong!'); } }); };
4、@PathVariable
@PathVariable注解,其用来获取请求路径(url )中的动态参数
@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。//配置url和方法的一个关系@RequestMapping("login/{id}")
例如:login/56845/
@RequestMapping("/zyh/{type}") public String zyh(@PathVariable(value = "type") int type) throws UnsupportedEncodingException { 。 。 。 }
5、@RequestParam
@RequestParam注解是SpringMVC后台控制层获取参数的方式主要有两种之一【一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取】
@RequestParam注解中三个重要参数
value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;
required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;
defaultValue:默认值,表示如果请求中没有同名参数时的默认值,