6

和之间的区别对我@RequestMapping来说不是很清楚。似乎以上所有最终都将请求 url 映射到控制器中的实际方法。那么区别是什么呢?什么能做不能做?@ActionMapping@RenderMapping@Rendermapping@Requestmapping

4

1 回答 1

12

@RequestMapping允许您指定模式(编辑、视图等)和许多其他选项(尽管不是窗口状态)。@RenderMapping允许您仅指定请求参数和窗口状态(MAXIMISED、NORMAL 等),并且是指示 Render 请求映射的便捷方式。您可以在同一个类上使用这两个注释。例如,您可以在类级别使用 RequestMapping 进行注释以表明它为 VIEW 模式的请求提供服务,然后在方法级别使用@RenderMapping(或@ActionMapping@ResourceMapping)注释特定请求的处理程序。

现在谈谈不同类型的请求可能会有所帮助。

呈现请求用于呈现 HTML,因此通常您会显示 JSP 或其他类型的视图。

动作请求用于执行诸如修改数据、上传文件等动作。需要注意的是,每个动作请求后面都有一个渲染请求。因此,如果您的页面上有两个 portlet,并且您向 portlet 发出一个操作请求,它将收到一个操作请求,然后是一个呈现请求。Portlet 2 将只接收一个呈现请求。

还有另一种类型的请求,你没有提到它也很有趣

资源请求可用于呈现其他内容类型。AJAX 是资源请求的常见用例,因为它们适用于返回 JSON 或 XML。

事件请求也存在并可用于portlet 间通信。

我可以推荐Spring portlet 文档。尽管它们没有很好地涵盖注释,但它们确实解释了不同的请求类型,您应该能够使用该信息来计算注释。

注意。如果您愿意,可以使用它@RequestMapping来定义渲染、操作和资源请求,但是@RenderMapping@ActionMapping或者@ResourceMapping提供更方便的方式来执行此操作。

于 2013-04-13T20:07:01.570 回答