将servlet的spring mvc controller方法转换为portlet

时间:2013-11-05 07:57:25

标签: spring-mvc spring-portlet-mvc

我有一个用spring vvc编写的控制器用于servlet环境。现在我想转换控制器使其适用于portlet环境。我正在使用spring mvc for portlet。

以下是方法片段

@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

1 个答案:

答案 0 :(得分:0)

这可能是延迟回复,但如果你回到这里,那么你可以推断一些东西(或者你可能已经推断过)。

@PathVariable在Spring Portlet环境中无效,因为您无法将ActionRenderResource网址映射到Controller的方法,而不是{ {1}}网址

如果要将Servlet控制器转换为Portlet控制器,则代码应如下所示

REST

@RequestMapping(params="anyIdentifier") public String findOwner(@RequestParam String ownerId, Model model) { Owner owner = ownerService.findOwner(ownerId); model.addAttribute("owner", owner); return "displayOwner"; } 在Portlet环境中仍然有用,但是根据portlet URL可以使用一些特定的注释。

  • @RequestMapping - 对于动作网址并且返回应该无效。尽管由于Portlet的2步执行而返回@ActionMappingView,但它没有任何效果
  • ModelAndView - 对于渲染网址,返回可以是@RenderMappingView。这始终遵循ModelAndView

  • @ActionMapping - 对于资源网址,返回可以是@ResourceMappingVoidView - 主要用于ajax调用。

相关问题