Spring&Spring MVC 注解详解(集)
1、【Spring MVC】@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 ”页面。
1、 value, method; value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明); method: 指定请求的method类型, GET、POST、PUT、DELETE等; 2、 consumes,produces; consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html; produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回; 3、 params,headers; params: 指定request中必须包含某些参数值是,才让该方法处理。 headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
2、【Spring MVC】@ResponseBody
@ResponseBody注解标识该方法返回的结果直接写入HTTP响应正文(ResponseBody)中,一般在异步获取数据时使用,比如;
save方法保存完毕数据之后返回保存成功的信息。
3、【Spring MVC】@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、【Spring MVC】@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、【Spring MVC】@RequestParam
@RequestParam注解是SpringMVC后台控制层获取参数的方式主要有两种之一【一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取】
@RequestParam注解中三个重要参数
value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;
required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;
defaultValue:默认值,表示如果请求中没有同名参数时的默认值,
6、【Spring】@Component(不推荐使用)
@Component注解:标准一个普通的spring Bean类
7、【Spring】@Controller
@Controller注解标注一个控制器组件类
8、【Spring】@Service
@Service注解标注一个业务逻辑组件类
9、【Spring】@Repository
@Repository注解标注一个DAO组件类
10、【Spring】@Resource
@Resource位于java.annotation包下,来自于java EE规范的一个annotation。使用该annotation为目标bean指定协作者Bean。
@Resource详细用法见经典javaEE企业应用实战。
@Resource有一个name属性,在默认情况下,spring将这个值解释为需要被注入的Bean实例的名字。
@Resource也可以直接修饰Filed,
如果@Resource修饰Field,这时候连该属性的setter方法就不需要了。
使用@Resource可以省略name属性。
修饰方法时,省略name属性,则该name值是该setter方法去掉前面的set字符串,首字母小写后得到的子串。
修饰Field时,省略name属性,则该name与该Field同名。
参考:spring mvc常用注解的说明【相对而言比较深入】
参考:注解和注释以及Spring和SpringMVC常用的注解【Spring 方面】
【杂谈】
1、Spring MVC 在web.xml中url-pattern属性用于开发者选择哪些路径是需要让Spring MVC来处理的-|-详情请见:Spring:基于注解的Spring MVC(上)
小破防今天你破防了吗 :痛苦预示着超脱
本文来自博客园,作者:小破防今天你破防了吗,转载请注明原文链接:https://www.cnblogs.com/supperlhg/p/9111563.html