2、在spring-mvc.xml配置文件中添加如下代码(此处一定要配置,否则你的注解就等于白写了)
<!-- 注解扫描包。也就是使用注解的类所属的包,也可以是最顶层的包,只要你的注解属于这个包下面就行 --> <context:component-scan base-package="com.mtqg.identify" /> <!-- 开启注解 --> <mvc:annotation-driven> <mvc:return-value-handlers> <!--JsonReturnHandler类所属的路径 --> <bean class="com.utils.JsonReturnHandler"></bean> </mvc:return-value-handlers> </mvc:annotation-driven> 3、注释的定义 @interface import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Repeatable(JSONS.class) // 让方法支持多重@JSON 注解 public @interface JSON { Class<?> type(); String include() default ""; String filter() default ""; } 4、创建工具类如图2.相关代码请点击本文开头链接下载 图2 5、需要导入的jar包,文章开头链接中下载。这三个包是编写相关注释工具类需要导入的jar包 图3 特别需要注意的是这些工具类中的方法需要引spring相关的jar。可能你的springjar包引入的但是依旧会报错,这是因为springjar包的版本要求要在4.0以上,看图4.spring在4.0之后添加了许多方法在编写@JSON工具类中用的到。相关jar包文章开头链接中下载。 图4 6、上述步骤操作完之后就可以编写测试类了,楼主一开始用的网上下载的工具类和测试类测试之后没有问题,但是集成到自己的项目中之后却没有效果。然后楼主就网上各种百度请教大神还没有解决,后来偶然间去掉了方法中的@ResponseBody注释结果行了。如图5 图5 之所以加上@ResonseBody不行的原因从网上也没有百度到,楼主认为@JSON和@ResponseBody相当于两条路如果加上了@ResponseBody之后那么程序就不会走@JSON了,这是你肯能就会问,如果不加@ResponseBody那么次方法就必须返回指定jsp页面才行,不能返回json串了,答案是及时没有@ResponseBody也能返回json串,原因是在@JSON的工具类中已经配置好了,相当于@JSON中包含了@ResponseBody 7、通过include设置要json字符串需要显示的字段,filter来设置不需要显示的字段 @JSON(type = Order.class, include="identifyed,identifytype,orderid,ordertype,timeout") @JSON(type = Article.class , filter="title")