springmvc 动态修改返回值类型,实现方法既能被ajax调用,又能被同步请求调用
spingmvc 的requestmappling方法如何动态修改返回值类型 业务场景: 客户端请求服务端(两个公司的不同系统之间的请求,类似于http接口),请求中参数异常就直接给客户端提示,请求正常,服务端控制跳转到自己系统的页面,执行剩余逻辑。 springmvc 的requestmapping 方法,分两种,一种是带有responsebody注解的(ajax操作),一种是没有(做请求跳转) springmvc 提供了一个 标签( <mvc:annotation-driven><mvc:return-value-handlers><bean/></mvc:return-value-handlers></mvc:annotation-driven> ),用来注册返回值类型的,我们可以自己定义返回值类型(例如:定义User), 接下来可以了解下生命周期,启动的时候把把自定义的方法返回值类型注册,然后放到一个list里面, requestmapping方法被调用的时候,先执行方法体,然后会根据方法的实际返回类型,到list中去找, 如果这个返回值类型没有,并且是responsebody方法则转换成json,返回页面,如果不是responsebody则抛出返回类型不支持的异常,要实现我们的需求,就要从这里侵入源码, 前面定义user 假设有两个属性,一个url(地址挑转)