注解(annotation)
目录
- JAVA注解
- SpringMVC注解
- RestEasy注解
- JSON注解
java注解
SpringMVC注解
restEasy注解
Json注解:
@JsonInclude(JsonInclude.Include.NON_NULL) // 忽略null值
@JsonIgnoreProperties(ignoreUnknown = true) // 忽略不匹配的值
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") //日期格式化
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",locale = "zh", timezone = "GMT+8") //如果有时区差请用这种
Spring注解:
spring参考网址:
API地址:http://docs.spring.io/spring/docs/current/javadoc-api/
使用说明地址: http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/
官网:http://projects.spring.io/spring-framework/
@RequestMapping
访问请求路径,可以对象,方法都加上,如下面的例子,访问路径就为 uri = /rest/mytest/a/myPage,
也可以设置接收类型POST|GET
@RequestMapping(value="/suggestInfoSubmit",method=RequestMethod.POST)
@Controller
@RequestMapping("/rest/mytest/a")
public Class A{
@RequestMapping("/myPage")
public String getMyPage(){
}
}
requestMapping还支持多个地址
@RequestMapping(value= {"/index","/login","/"})
将method简化就为:GetMapping/ PostMapping
@ResponseBody
如果在方法上设置有,则返回内容,而非指向的jsp页面,否则就是查找对应的jsp页面显示。
@RequestMapping(value="/suggestInfoSubmit",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> submitSuggestInfo(@ModelAttribute GroupSuggestVO suggestVO,HttpServletRequest request){
不写返回String指向jsp页面
@RequestMapping(value = "/suggestPage")
public String getSuggestPage(Model model,HttpServletRequest request,HttpServletResponse response) throws ClientProtocolException, IOException {
logger.debug(">>>getSettingSuggestPage(Model model,HttpServletRequest request,HttpServletResponse response)");
logger.debug("<<<getSettingSuggestPage(Model model,HttpServletRequest request,HttpServletResponse response)");
return PAGE_SETTING_SUGGEST;
参数:
@PathVariable
获取路径参数,restful接口使用uri访问方式,即url的路径名称是参数的一部分。多用于GET请求。比如根据personID查找人员信息就可使用uri中加入员工ID的形式。
@RequestMapping(value="/suggestInfoSubmit/{id}",method=RequestMethod.GET)
@ResponseBody
public Map<String, Object> submitSuggestInfo(@PathVariable String
id,HttpServletRequest request){
@RequestParam
获取request中的参数
$.ajax({
url:url,
data:{name:name}
}) public Map<String, Object> submitSuggestInfo(@RequestParam("name") String userName,HttpServletRequest request){
@RequestBody
获取request中的所有参数,这种方式适合于复杂数据提交,数组,POJO对象中包含对象,或list对象。
这种方式需要将request的ajax提交 contentType:'application/json',同时将data数据 JSON.stringify。ajax默认为:( "application/x-www-form-urlencoded")
jsp:
$.ajax({
url : '****',
contentType: 'application/json',
data: JSON.stringify(person)
}) java:
@RequestMapping('')
public Map<String,Object> submitInfo(@RequestBody Person person){ }
注意:如果提交的数据是List对象类型,后台如果直接List<User> userList,接到的实质是List<LinkedHashMap>而非user对象,需要使用 User[] user来接收对象。
@ModelAttribute
@ModelAttribute可以添加在一个方法上,也可以标注在参数上。
方法上作用,大多用于整个类的所有方法的初始化操作,在进入指定的uri对应的方法前,首先执行这个类中的@ModelAttribute修饰的方法,然后再转入到实际请求方法中。
@ModelAttribute
public void init(){
system.out.println('**1***');
} @RequestMapping("***")
public String getTest(){
system.out.println('**2***');
}
注意:@ModelAttribute标注在方法上,如果有return值,则自动会装入到Model中。名字则为指定的名字。
@ModelAttribute(value="user")
public User getUser(@RequestParam String id){
User users = new User("123", "张三");
return users;
} EL表达式接收: ${requestScope.user.name} 相当于:
@ModelAttribute
public void getUser(@RequestParam String id, Model model){
User users = new User("123", "张三");
model.addAttribute("user", users);
}
如果@ModelAttribute和@RequestMapping作用于一个方法,则返回的是Model对象而非视图地址。因此要注意。
@RequestMapping(".....")
@ModelAttribute(value="user")
public String getUser(@RequestParam String id){
User users = new User("123", "张三");
return "user_page";
} ----------------
结果:
不会跳转到jsp页面。
EL表达式接收 ${user} ---结果: user_page
@ModelAttribute添加在参数上可以接收另外一个方法中添加到Model中的内容。
因Model中的方法只有addAttribute()方法,没有get方法,因此对于forward的形式,可以将前一个方法中加工获取的内容放入到model中,在需要的方法中@ModelAttribute来获取。
@ModelAttribute(value="user")
public User getUser(@RequestParam String id){
User users = new User("123", "张三");
return users;
} @RequestMapping(....)
public void getUser(@ModelAttribute('user') User user, Model model){
User users = new User("123", "张三");
}
注解(annotation)的更多相关文章
- Java的注解(Annotation)
1.什么是注解 Annotation is code about the code, that is metadata about the program itself. Java注解,是Java5. ...
- Java Android 注解(Annotation) 及几个常用开源项目注解原理简析
不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义. ...
- Java注解Annotation学习
学习注解Annotation的原理,这篇讲的不错:http://blog.csdn.net/lylwo317/article/details/52163304 先自定义一个运行时注解 @Target( ...
- Java中注解Annotation的定义、使用、解析
此例子,用于说明如何在Java中对“注解 Annotation”的定义.使用和解析的操作.注解一般用于自定义开发框架中,至于为什么使用,此处不作过多说明,这里只说明如何使用,以作备记.下面例子已测试, ...
- java基础-注解Annotation原理和用法
在很多java代码中都可以看到诸如@Override.@Deprecated.@SuppressWarnings这样的字符,这些就是注解Annotation.注解最早在jdk5中被引入,现在已经成为j ...
- Enum枚举类|注解Annotation
Enum枚举类 ①枚举类和普通类的差别: 使用 enum 定义的枚举类默认继承了 java.lang.Enum 类 枚举类的构造器仅仅能使用 private 訪问控制符 枚举类的全部实例必须在枚举类中 ...
- JUnit扩展:引入新注解Annotation
发现问题 JUnit提供了Test Suite来帮助我们组织case,还提供了Category来帮助我们来给建立大的Test Set,比如BAT,MAT, Full Testing. 那么什么情况下, ...
- Java - 注解 (Annotation)
Java - 注解 (Annotation) 一.基本的 Annotation > 使用 Annotation 时要在其前面增加 @符号,并把该 Annotation 当成一个修饰符 ...
- JAVA提高五:注解Annotation
今天我们学习JDK5.0中一个非常重要的特性,叫做注解.是现在非常流行的一种方式,可以说因为配置XML 比较麻烦或者比容易查找出错误,现在越来越多的框架开始支持注解方式,比如注明的Spring 框架, ...
- Java:注解Annotation(元数据)
本文内容: 注解Annotation的介绍 基本注解的用法 自定义注解 首发日期:2018-07-28 注解Annotation的介绍 Annotation是代码中的特殊标记,能够在编译.类加载.运行 ...
随机推荐
- Java-学习-喜欢-品牌:互联网公司成为动物园,拟人化品牌形象真的那么有意思?
ylbtech-Java-学习-喜欢-品牌:互联网公司成为动物园,拟人化品牌形象真的那么有意思? 1.返回顶部 1. 当我们在思考如何在这个碎片化.多元化的时代找到真实的.不被标签的自我时,互联网中 ...
- MATLAB的一些小技巧
写论文要将图片保存为tiff格式,还要求dpi,还要标注,真是麻烦,下面的命令是最方便的程序化处理方式了 MATLAB text标注后 保存为 tiff 图片,图片到边框间无空白 clear all; ...
- jquery 点击元素以外任意地方隐藏该元素的方法
文章来源:百度知道 我的思路是给body绑定一个click事件,然后判断当前鼠标点击的区域是当前元素还是元素以外区域,如果点击对象不是当前元素,则隐藏该元素. 假设对象的id为divBtn,则代码如下 ...
- C语言强化——链表(1)
目录 链表的增删(不带头结点) 链表相关面试题 合并两个有序链表 单链表原地逆置 找出链表的倒数第四个节点 找出链表的中间节点 判断单链表是否有环 求链表交点 删除有序单链表中重复的元素 链表按奇数. ...
- 996ICU的感悟
并不只是口头上的支持,吉多·范罗苏姆近日又在 Python 官方论坛发布一篇名为<Can we do something for 996 programmers in China?>(我 ...
- centos7 使用二进制安装mysql 5.7.23
1.下载二进制安装包 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz cd /usr/local/src wget https://cdn.mysql.com// ...
- 第7章 网络层协议(3)_ARP协议
3. ARP协议 3.1 ARP(Address Resolution Protocol)协议的工作过程和安全隐患 (1)计算机A和C通信之前,先检查ARP缓存中是否有计算机C的IP地址对应的MAC地 ...
- Java 11 - Java String类
Java String类 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串. 创建字符串 创建字符串最简单的方式如下: String gree ...
- Android手动控制软键盘的开启和关闭,判断软键盘是否显示;
工具类,拿走就能用: import android.annotation.TargetApi; import android.app.Activity; import android.content. ...
- Spring 配置 Annotation <context:annotation-config> 和 <context:component-scan>标签的诠释及区别
Spring 开启Annotation <context:annotation-config> 和 <context:component-scan>诠释及区别 <cont ...