gpt4 book ai didi

liferay - 从 Configuration.jsp 调用 Action-Class

转载 作者:行者123 更新时间:2023-12-05 01:08:33 26 4
gpt4 key购买 nike

我已经定义了一个配置操作类,用于加载基于 drools ( liferay-portlet.xml ) 的现有 portlet 的配置:

<configuration-action-class>com.liferay.drools.action.ConfigurationActionImpl</configuration-action-class>

这个类是 processAction 类:

public class ConfigurationActionImpl extends DefaultConfigurationAction {

@Override
public void processAction(

现在,我想添加另一个带有行的表单(在同一个 config.jsp 页面内)。正是我想从所有这些行中调用一个不同的类(对 SelectRules.java 类的调用):

<%
ResultRow row = (ResultRow)request.getAttribute(WebKeys.SEARCH_CONTAINER_RESULT_ROW);
IRRule myRule = (IRRule)row.getObject();
String name = IRRule.class.getName();
String primKey = String.valueOf(myRule.getPrimaryKey());
%>

<liferay-ui:icon-menu>
<portlet:actionURL name="selectRule" var="selectURL">
<portlet:param name="resourcePrimKey" value="<%=primKey %>" />
</portlet:actionURL>
<liferay-ui:icon image="checked" message="SelectRule" url="<%=selectURL.toString() %>" />
</liferay-ui:icon-menu>

my portlet.xml我定义了以下 portlet 类:

<portlet-class>com.myown.oriol.selectrules.portlet.SelectRules</portlet-class>

如您所见,主要问题是 actionURL 正在寻找配置操作类,但我真正想要的是调用名为 selectRules 的 portlet-class(SelectRules.java) 函数。

我想调用的已定义类 selectRules 以这种方式开始:

public class SelectRuleClass extends MVCPortlet {

public void selectRule(
PortletConfig portletConfig, ActionRequest actionRequest,
ActionResponse actionResponse)

你知道我需要什么来解决这个问题吗??考虑到 configurationActionImpl.java 已经由另一个人定义,我不知道如何将这两个类与两个不同的扩展合并。

在简历中.. 我需要在选择要使用的规则时从 configuration.jsp 调用函数 selectRule。但是配置操作类是加载这个现有的 portlet 所需的另一个类。在选择规则时,我收到此错误...
86 does not have any paths specified

非常感谢,
金莺

最佳答案

configuration.jsp由名为 86 的 liferay portlet 呈现您需要使用 <liferay-portlet:actionURL>而不是简单的 <portlet:actionURL>因为您需要指定 portlet-name您需要从 configuration.jsp 调用其操作方法,像这样:

<liferay-ui:icon-menu>
<liferay-portlet:actionURL name="selectRule" var="selectURL" portletName="SelectRules_WAR_SelectRulesportlet">
<liferay-portlet:param name="resourcePrimKey" value="<%=primKey %>" />
</liferay-portlet:actionURL>
</liferay-ui:icon-menu>

如果您定义了 <portlet-name>SelectRules</portlet-name>比属性 portletName标签的值将是 portletName="SelectRules_WAR_SelectRulesportlet" ,这是在部署 portlet 后由 liferay 生成的 portlet-id。

这是 Liferay 从另一个 ( SelectRules ) 调用一个 portlet ( 86 ) 的便捷方式。

关于liferay - 从 Configuration.jsp 调用 Action-Class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17104721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com