参考文章, 我们可以知道spring MVC的controller和restcontroller的区别, 就是「完成处理后, 有没有返回到dispatcher 」
问: 没有viewresolver产生的问题.
- 无法JSP进行跳转, 也就无法进行再处理, 只能直接映射到文件.
- 使用viewresolver的代码, 需要大幅度修改.
解决方案:
1. JSP和XML,JSON文件分开两个method处理, 只能通过consumes分流处理.
2. 新建一个实体jsp文件, 进行跳转, 从而进行操作.
3. 自定义MessageConverter.
我理想中的restcontroller: return可以指向一个具体的view. 通过forward等语法, 或者注解方式来区别”纯文字和指令”.
实际=> 无法使用跳转指令.
综上, restcontroller需要修改不少代码. 这种方式适合创建代码
另一种方式, 仍可以使用viewresolver, 因为它本身就是ContentNegotiatingViewResolver, 对于之前用view resolver的码农来说, 并不需要太多学习成本
配置文档, 可以大规模的处理, 并兼容之前的Spring MVC 的controller, 看起来很好. 也可以解决URL的地址为变量的问题
/abc/{d}
总结: restcontroller方便, 不过无法设置default file, 也就是一定要用.jsp ,适合从零开始
ContentNegotiatingViewResolver则适合现存代码量多的时候, 修改代码
参考:
http://ufasoli.blogspot.com/2013/08/viewresolver-vs-messageconverter-spring.html