Spring mvc 将servlet的SpringMVC控制器方法转换为portlet
我有一个用SpringMVC为servlet环境编写的控制器。现在我想转换控制器,使其在portlet环境中工作。我正在为portlet使用SpringMVC 下面是方法片段Spring mvc 将servlet的SpringMVC控制器方法转换为portlet,spring-mvc,spring-portlet-mvc,Spring Mvc,Spring Portlet Mvc,我有一个用SpringMVC为servlet环境编写的控制器。现在我想转换控制器,使其在portlet环境中工作。我正在为portlet使用SpringMVC 下面是方法片段 @RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET) public String findOwner(@PathVariable String ownerId, Model model) { Owner owner = ownerSer
@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)
public String findOwner(@PathVariable String ownerId, Model model) {
Owner owner = ownerService.findOwner(ownerId);
model.addAttribute("owner", owner);
return "displayOwner";
}
有谁能指导我如何将这个为servlet环境编写的控制器方法转换为portlet环境吗?
我想将RequestMapping更改为RenderMapping,这可能是延迟回复,但如果您回到这里,您可以推断出一些情况(或者您可能已经这样做了)
@PathVariable
在SpringPortlet环境中无效,因为与REST
URL不同,您无法将操作
、呈现
和资源
URL映射到控制器
的方法
如果您想将Servlet控制器转换为Portlet控制器,那么您的代码应该如下所示
@RequestMapping(params="anyIdentifier")
public String findOwner(@RequestParam String ownerId, Model model) {
Owner owner = ownerService.findOwner(ownerId);
model.addAttribute("owner", owner);
return "displayOwner";
}
@RequestMapping
在Portlet环境中仍然适用,但是您可以基于Portlet URL使用一些特定的注释
-对于操作URL和返回,应为空。尽管您返回了一个@ActionMapping
或视图
作为Portlet的两步执行,但它没有任何效果模型和视图
-渲染URL和返回可以是@RenderMapping
或视图
。这始终遵循模型和视图
@ActionMapping
-对于资源URL和返回,可以是@ResourceMapping
、Void
或View
-主要用于ajax调用ModelAndView