spring mvc @requestmapping最佳实践

时间:2010-12-01 21:53:27

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

检查官方裁判,找到了百万种做事方式 我想我有两套用例。 1.返回自定义的http响应,基本上我负责填写状态代码,响应正文(XML或JSON或文本)。 2.返回模型和视图。 view通常是一个jsp页面,并用来自modle的数据填充视图。

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

谢谢!

2 个答案:

答案 0 :(得分:2)

来自任何请求处理方法的返回值( ie on标有@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页面,tile,)和一个或多个用于“特殊”视图分辨率(XML,JSON,等。)。对于“特殊”视图,您可能希望创建自己的扩展org.springframework.web.servlet.view.AbstractView的视图类。

答案 1 :(得分:2)

您可以使用ContentNegotiatingViewResolver完成与您所描述的内容类似的内容,@RequestMapping可以根据请求处理不同的内容,而不需要对{{1}}注释进行任何更改,或者实际上是任何内容你是控制者。

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