我想为liferay portlet创建一个配置页面. 来自portlet.xml的一些代码 portlet-nameexample-config/portlet-name display-nameexample-to-delete/display-name portlet-classorg.springframework.web.portlet.DispatcherPortlet/portlet-cla
来自portlet.xml的一些代码
<portlet-name>example-config</portlet-name> <display-name>example-to-delete</display-name> <portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class> <init-param> <name>contextConfigLocation</name> <value>/WEB-INF/spring-context/portlet/example-config-portlet.xml</value> </init-param> <init-param> <name>config-jsp</name> <value>/WEB-INF/html/jsp/config.jsp</value> </init-param>
ConfigurationActionImpl
public class ConfigurationActionImpl implements ConfigurationAction { @Override public void processAction(PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { } @Override public String render(PortletConfig portletConfig, RenderRequest renderRequest, RenderResponse renderResponse) throws Exception { System.out.println("RENDER CALL"); return "/html/jsp/config.jsp"; } }
Liferay的-的portlet.xml
<portlet> <portlet-name>example-to-delete</portlet-name> <icon>/icon.png</icon> <configuration-action-class>by.example.ConfigurationActionImpl</configuration-action-class> <instanceable>false</instanceable> </portlet>
当我运行它时,我在配置选项中有一个选项卡(渲染方法工作,我在控制台中看到消息“RENDER CALL”),但我的jsp没有显示,没有错误和警告.我尝试了不同的方法来提供jsp路径,但没有进展.我该怎么办?
如果配置操作类扩展了DefaultConfigurationAction,则只需将JSP路径指定为portlet.xml中的init param(configTemplate和config-jsp是同等有效的名称).您不必重写render方法.在您的情况下,配置操作类不会扩展DefaultConfigurationAction,因此init参数是无用的.
JSP路径必须始终从类路径根开始 – 即.从/ WEB-INF开始,放在那里的JSP.
有关portlet配置的完整说明,请参见Developer’s Guide.
您还可以使用Spring Portlet MVC框架(您可以使用问题建议)开发可配置的portlet.这意味着要为编辑portlet模式创建专用控制器(@Controller @RequestMapping(“edit”)).使用Spring,您可以以与portlet视图模式相同的方式实现配置(即使用相同的JSP标记,表单绑定,验证以及Spring框架带来的所有舒适性).