4

liferay-portlet.xmldrools ( )に基づいて既存のポートレットの構成をロードするための構成アクション クラスを定義しました。

<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-class>com.myown.oriol.selectrules.portlet.SelectRules</portlet-class>

お分かりのように、主な問題は actionURL が configuration-action-class を参照していることですが、私が正確に望んでいるのは、selectRules という portlet-class(SelectRules.java) 関数を呼び出すことです。

そして、呼び出したい定義済みのクラス selectRules は次のように始まります。

public class SelectRuleClass extends MVCPortlet {

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

これを解決するために何が必要か知っていますか?? configurationActionImpl.java がすでに別の人によって定義されていることを考えると、この 2 つのクラスを 2 つの異なる拡張機能とマージする方法がわかりません。

履歴書では..使用するルールを選択する際に、configuration.jsp から関数 selectRule を呼び出す必要があります。ただし、構成アクション クラスは、この既存のポートレットをロードするために必要なもう 1 つのクラスです。ルールを選択しているときに、このエラーが発生します...

86 does not have any paths specified

どうもありがとう、オリオル

4

1 に答える 1

5

configuration.jspは liferay ポートレットによって名前付きでレンダリングされるため、次のように、単純なの代わりに86使用する必要があります。<liferay-portlet:actionURL><portlet:actionURL>portlet-nameconfiguration.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>の属性が valueを持つように定義した場合、これは、ポートレットをデプロイすると liferay によって生成される portlet-id です。portletNameportletName="SelectRules_WAR_SelectRulesportlet"

SelectRulesこれは、あるポートレット ( ) を別のポートレット ( ) から呼び出す liferay の便利な方法86です。

于 2013-06-14T13:40:40.810 に答える