根据PortletPreferences显示不同的portlet页面

时间:2011-07-18 14:16:28

标签: java spring-mvc liferay portlet portal

我有一个处理关税和关税类别的portlet。我正在使用Liferay 5.2.3和Spring Portlet框架。


在页面上添加时,portlet应该以两种模式工作:

  1. 显示主屏幕 - 标准模式(MainScreenController)
  2. 显示资费类别详细信息(TariffCategoryController) - 设置portlet首选项“showCategoryDe​​tail”时
  3. 在设置portlet首选项时,我无法弄清楚如何将请求更改/转发到TariffCategoryController。你能给我一个提示吗?谢谢!

    @Controller("mainScreenController")
    @RequestMapping("VIEW")
    public class MainScreenController {
    
        @RenderMapping
        public String handleRenderRequest() {
            return "mainScreen";
        }
    
        ...
    }
    
    
    @Controller("tariffCategoryController")
    @RequestMapping("VIEW")
    public class TariffCategoryController {
    
        @RenderMapping(params = "myaction=showTariffCategory")
        public String handleRenderRequest() {
            return "tariffCategory";
        }
    
        ...
    }
    

1 个答案:

答案 0 :(得分:0)

标准Spring的DefaultAnnotationHandlerMapping无法使用portlet首选项。如果您需要这样的功能,那么编写自己的自定义HandlerMapping实现应该非常容易。

但我建议使用不同的方法。无论任何偏好设置都显示默认视图,如果未设置首选项,则显示一条消息,说明“需要配置”并链接到编辑模式。为什么?因为首选项只能在编辑模式下编辑,您不需要基于portlet首选项进行路由。