Spring mvc 将servlet的SpringMVC控制器方法转换为portlet

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

我有一个用SpringMVC为servlet环境编写的控制器。现在我想转换控制器,使其在portlet环境中工作。我正在为portlet使用SpringMVC

下面是方法片段

@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使用一些特定的注释

  • @ActionMapping
    -对于操作URL和返回,应为空。尽管您返回了一个
    视图
    模型和视图
    作为Portlet的两步执行,但它没有任何效果
  • @RenderMapping
    -渲染URL和返回可以是
    视图
    模型和视图
    。这始终遵循
    @ActionMapping

  • @ResourceMapping
    -对于资源URL和返回,可以是
    Void
    View
    ModelAndView
    -主要用于ajax调用