和之间的区别对我@RequestMapping
来说不是很清楚。似乎以上所有最终都将请求 url 映射到控制器中的实际方法。那么区别是什么呢?什么能做不能做?@ActionMapping
@RenderMapping
@Rendermapping
@Requestmapping
1 回答
@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
提供更方便的方式来执行此操作。