legacy-knowledge-base
公開されました Jul. 2, 2025

ColorPicker用のSoy taglibが、修正パックdxp-13-7110を含む7.1以降で動作しなくなった。

投稿者

Alfonso Crisci

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 7.1の修正パックdxp-13-7110+から、Soy taglibを使ってColorPickerを作成し、これに似たものを作成しました:
    <%@page import="java.util.HashMap"%>
    <%@page import="java.util.Map"%>
    <%@ include file="/init.jsp" %>
    <%@ taglib uri="http://liferay.com/tld/soy" prefix="soy" %>
    <p>
    <b><liferay-ui:message key="colorpicker.caption"/></b>
    </p>

    <%
    Map<String, Object> context = new HashMap<>();

    context.put("color", "#ff0000");
    context.put("id", "backgroundColor");
    context.put("label", "background-color");
    context.put("name", "backgroundColor");
    %>

    <soy:component-renderer
    context="<%= context %>"
    module="portlet-configuration-css-web/js/ColorPickerInput.es"
    templateNamespace="com.liferay.portlet.configuration.css.web.ColorPickerInput.render"
    />

    (または soy:component-renderer)が機能しなくなります:

Soy_ColorPicker_dxp-13-7110_.png

環境

  • Liferay DXP 7.1+

解像度

  • 上記のスニペットは、偶然にもdxp-12-7110まで動作し、その動作は修正パックdxp-13-7110によって上書きされました。この修正パック以降、ポートレット内で configuration-css-web 外部モジュールの内部コンポーネントを使用することはできなくなりました。 以前の動作を実現するためには、以下の手順で行ってください:

1. configuration-css-webの代わりに、 ColorPickerInput コンポーネントを com.liferay.portlet.configuration.css.web からポートレットにコピーする必要があります(ColorPickerInput.soy, ColorPickerInput.es.js)。
2. 名前空間は、 ColorPickerInput.soy
3.で更新する必要があります。 templateNamespace soy:component-renderer taglib in view.jsp
4.で更新する必要があります。 package.json を追加して soyes.js ファイルを構築し、 liferay-npm-scripts 7.1.0
5を使用することにする。 npm install
6. node モジュールを以下のようにインストールします。 bnd.bnd for soy capability
7.調整します。 Liferayの内部では、モジュールの構築にgradleを使用しているため、必要なファイルも8に追加する必要があります
。 ポートレットを構築するための build.gradle を調整する
9. 私たちのソリューションでは、 copyClassesMetaInf タスクを追加して、トランスパイルド js ファイルと node_modulesbuild folder
10 にコピーするためのクイックフィックスとしています。 gradlew clean build
11.ポートレットをビルドします。 デプロイ可能なjarは次の場所にあります: buildlibs helicolor.picker-1.0.0.jar

このようなプロジェクトの例は、このチケットの添付ファイルで、サポートされていないヒントという形で提供されています。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base