JournalArticleのアセットを変更しようとしています(記事のレイアウトの親に応じてカテゴリを設定する必要があります)。私はJournalArticleのModelListenerを実装することができました。メソッドonAfterUpdate()私はJournalArticleLocalServiceUtil.updateAsset()を持っています。Liferay。 ModelListenerからJournalArticleを変更する
ログには問題ありません。私はパラメータでカテゴリIDが必要でしたが、次回に記事エディタを開くと、記事のカテゴリリストに表示されません。
モデルの変更を何とかModelListenerから保存することは可能ですか、それとも監視するだけで、このリスナーからモデルを変更できませんか?
コード(縮小版):Liferayの-hook.xmlで
package mypackage;
// imports
public class JournalArticleListener implements ModelListener {
private void updateCategories(JournalArticle article) {
try {
long[] categoriesArray = getCategories(article); // this works fine
String[] tagsArray = getTags(article); // this also works fine
JournalArticleLocalServiceUtil.updateAsset(article.getUserId(), article, categoriesArray, tagsArray);
} catch (PortalException ex) {
// logger
} catch (SystemException ex) {
// logger
}
}
@Override
public void onBeforeUpdate(Object model) throws ModelListenerException {
updateCategories((JournalArticle)model);
}
// other abstract method implemented without any code inside
}
私は私の知る限り、あなたのコードは、罰金
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 6.0.0//EN" "http://www.liferay.com/dtd/liferay-hook_6_0_0.dtd">
<hook>
<model-listener>
<model-listener-class>mypackage.JournalArticleListener</model-listener-class>
<model-name>com.liferay.portlet.journal.model.JournalArticle</model-name>
</model-listener>
</hook>
コードを投稿することはできますか? –
コードが投稿されました – SquAreRoot