【问题标题】:spring mvc @requestmapping best practicespring mvc @requestmapping 最佳实践
【发布时间】:2011-05-18 18:57:57
【问题描述】:

查看了官方参考,找到了一百万种方法。
我想我有两组用例。 1.返回自定义的http响应,基本上我负责填写状态码,响应体(XML或者JSON或者文本)。 2. 返回模型和视图。视图通常是一个jsp页面,并用来自模型的数据填充视图。

我的问题是哪种方法更好?可以将它们混合在一起。在我的第一个使用集中,是否可以返回视图?也有可能在一种方法中同时使用它们。类似于如果 A 返回自定义的 http 响应,如果 B 返回 ModelAndView。

谢谢!

【问题讨论】:

    标签: model-view-controller spring spring-mvc


    【解决方案1】:

    来自任何请求处理方法的返回值(ie 上标有@RequestMapping 注释必须标识一个视图(将生成 HTTP 响应)或生成 HTTP 响应本身。

    每个处理程序方法都是独立的;我的意思是,您可以从某些处理程序方法返回视图名称并在其他处理程序方法中生成 HTTP 响应。

    http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/的 Spring 3x 参考文档中查看 15.3.2.3 支持的处理程序方法参数和返回类型

    作为在处理程序方法中生成 HTTP 响应的一个选项,您可以设置多个视图解析器;一个或多个用于普通视图分辨率(jsp 页面、图块、),一个或多个用于“特殊”视图分辨率(XML、JSON、)。对于“特殊”视图,您可能希望创建自己的扩展 org.springframework.web.servlet.view.AbstractView 的视图类。

    【讨论】:

      【解决方案2】:

      您可以使用ContentNegotiatingViewResolver 完成与您描述的内容类似的事情,它可以根据请求处理不同的内容,无需更改您的@RequestMapping 注释,或者实际上您的任何内容控制器。

      有很多关于如何使用这个方法的资源,包括thisthis

      【讨论】:

        猜你喜欢
        • 2015-09-11
        • 2015-04-19
        • 1970-01-01
        • 1970-01-01
        • 2011-02-04
        • 2014-06-26
        • 2011-05-05
        • 1970-01-01
        • 2014-03-30
        相关资源
        最近更新 更多