問題
- アイテムセレクタの実装の記事を使って、アイテムセレクタを作成しようとしています。
- ステップ5で、 ポートレットは表示されますが、「選択ボタン」をクリックするとコンソールにエラーメッセージが表示され、それ以外は何も起こりません。
環境
- Liferay DXP 7.4
解像度
- 残念ながら、 、アイテム・セレクタ自体ではなく、ドキュメントにエラーがあります(コードに2つの小さなタイプミスがあります)。
-
F5D5Portlet
Java.lang.UnsupportedOperationExceptionを回避するために修正する必要があります:Requires 3.0 opt-in
クラスのポートレットプロパティに、次のように"javax.portlet.version=3.0"
を追加する必要があります(6行目):
@Component(
property = {
"com.liferay.portlet.display-category=category.sample",
"javax.portlet.display-name=F5D5 Portlet",
"javax.portlet.init-param.view-template=/view.jsp",
"javax.portlet.version=3.0"
},
service = Portlet.class
)
public class F5D5Portlet extends MVCPortlet {
view.jsp
にもタイプミスがあります。 、新しい
粒子は22行目で取り除かなければならない。 であるべきだ:
selectRoleButton.addEventListener(
'click',
function(event) {
Liferay.Util.openSelectionModal(
{
onSelect: function (event) {
alert(event.value);
},
selectEventName: '<portlet:namespace />selectRole',
title: 'Select Role',
url: '<%= request.getAttribute(F5D5WebKeys.ITEM_SELECTOR_URL) %>'
}
);
}
);
の代わりに
selectRoleButton.addEventListener(
'click',
function(event) {
new Liferay.Util.openSelectionModal(
{
onSelect: function (event) {
alert(event.value);
},
selectEventName: '<portlet:namespace />selectRole',
title: 'Select Role',
url: '<%= request.getAttribute(F5D5WebKeys.ITEM_SELECTOR_URL) %>'
}
);
}
);
これらの変更が適用されると、ポートレットは期待通りに動作します。
- ドキュメントの修正を依頼し、現在修正中です。