<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>Liferay 7.2 - Liferay-portlet runtime defaultPreferences not replacing</title>
  <link rel="self" href="https://liferay.dev/sv/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=115261526" />
  <subtitle>Liferay 7.2 - Liferay-portlet runtime defaultPreferences not replacing</subtitle>
  <id>https://liferay.dev/sv/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=115261526</id>
  <updated>2026-04-26T10:06:13Z</updated>
  <dc:date>2026-04-26T10:06:13Z</dc:date>
  <entry>
    <title>RE: Liferay 7.2 - Liferay-portlet runtime defaultPreferences not replacing</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/message_boards/find_message?p_l_id=119785294&amp;messageId=119078246" />
    <author>
      <name>YOGESH CHANDRA</name>
    </author>
    <id>https://liferay.dev/sv/c/message_boards/find_message?p_l_id=119785294&amp;messageId=119078246</id>
    <updated>2020-05-01T11:19:14Z</updated>
    <published>2020-05-01T11:19:14Z</published>
    <summary type="html">Hi,I am using web content display and setting preferences dynamically . You can reference  below code its working for me.      &lt;br /&gt;             javax.portlet.PortletPreferences preferences = PortletPreferencesFactoryUtil&lt;br /&gt;                    .getLayoutPortletSetup(themeDisplay.getLayout(), &amp;#34;com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_&amp;#34;+instanceId);&lt;br /&gt;            preferences.setValue(&amp;#34;ddmTemplateKey&amp;#34;,&amp;#34;&amp;#34;);&lt;br /&gt;            preferences.setValue(&amp;#34;assetEntryId&amp;#34;, new Long( ja.getResourcePrimKey()).toString());&lt;br /&gt;            preferences.setValue(&amp;#34;userToolAssetAddonEntryKeys&amp;#34;, &amp;#34;&amp;#34;);&lt;br /&gt;            preferences.setValue(&amp;#34;enableViewCountIncrement&amp;#34;, &amp;#34;false&amp;#34;);&lt;br /&gt;            preferences.setValue(&amp;#34;groupId&amp;#34;, new Long(ja.getGroupId()).toString());&lt;br /&gt;            preferences.setValue(&amp;#34;articleId&amp;#34;,new Long(ja.getArticleId()).toString());&lt;br /&gt;            preferences.setValue(&amp;#34;contentMetadataAssetAddonEntryKeys&amp;#34;,&amp;#34;&amp;#34;);&lt;br /&gt;            PortletPreferencesLocalServiceUtil.updatePreferences(themeDisplay.getScopeGroupId(),&lt;br /&gt;            3,0, &amp;#34;com_liferay_journal_content_web_portlet_JournalContentPortlet_INSTANCE_&amp;#34;+instanceId, preferences); Check portletpreferences  table as well .</summary>
    <dc:creator>YOGESH CHANDRA</dc:creator>
    <dc:date>2020-05-01T11:19:14Z</dc:date>
  </entry>
  <entry>
    <title>RE: Liferay 7.2 - Liferay-portlet runtime defaultPreferences not replacing</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118964176" />
    <author>
      <name>YOGESH CHANDRA</name>
    </author>
    <id>https://liferay.dev/sv/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118964176</id>
    <updated>2020-04-17T07:40:37Z</updated>
    <published>2020-04-17T07:40:37Z</published>
    <summary type="html">Hi, Were you able to fix this, I need to set preferences for Web content display. &lt;br /&gt;Below is my sample code.PortletPreferences preferences = PortletPreferencesLocalServiceUtil.getDefaultPreferences(themeDisplay.getCompanyId(), &amp;#34;com_liferay_journal_content_web_portlet_JournalContentPortlet&amp;#34;);&lt;br /&gt;        preferences.setValue(&amp;#34;articleId&amp;#34;, ja.getArticleId());&lt;br /&gt;        preferences.setValue(&amp;#34;groupId&amp;#34;,String.valueOf( ja.getGroupId()));&lt;br /&gt;        preferences.setValue(&amp;#34;ddmTemplateKey&amp;#34;,ja.getTemplateId());&lt;br /&gt;        &lt;br /&gt;        pref= PortletPreferencesFactoryUtil.toXML(preferences);&lt;br /&gt;/*         JournalArticleDisplay articleDisplay = JournalArticleLocalServiceUtil.getArticleDisplay(themeDisplay.getCompanyGroupId(),&lt;br /&gt;        ja.getArticleId(), ja.getTemplateId(),&lt;br /&gt;        &amp;#34;&amp;#34;, themeDisplay.getLanguageId(),&lt;br /&gt;        themeDisplay);&lt;br /&gt;        content = articleDisplay.getContent(); */&lt;br /&gt;  %&amp;gt;&lt;br /&gt;  &amp;lt;div&amp;gt;&lt;br /&gt; &amp;lt;liferay-portlet:runtime portletName=&amp;#34;com_liferay_journal_content_web_portlet_JournalContentPortlet&amp;#34; instanceId=&amp;#34;isfgjsnsjkjk&amp;#34; defaultPreferences=&amp;#34;&amp;lt;%=pref %&amp;gt;&amp;#34;/&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;</summary>
    <dc:creator>YOGESH CHANDRA</dc:creator>
    <dc:date>2020-04-17T07:40:37Z</dc:date>
  </entry>
  <entry>
    <title>Liferay 7.2 - Liferay-portlet runtime defaultPreferences not replacing</title>
    <link rel="alternate" href="https://liferay.dev/sv/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115261525" />
    <author>
      <name>Fabio Carvalho</name>
    </author>
    <id>https://liferay.dev/sv/c/message_boards/find_message?p_l_id=119785294&amp;messageId=115261525</id>
    <updated>2019-09-11T15:58:09Z</updated>
    <published>2019-09-11T15:58:09Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Hi,&lt;br&gt;&lt;br&gt;I have a portlet with a embed navigation menu portlet. I have a value for the&amp;nbsp;defaultPreferences that can change sometimes. The problem is that when it changes, the portlet always uses the previous defaultPreferences.&lt;br&gt;&lt;br&gt;My java code is the following:&lt;br&gt;&lt;pre&gt;&lt;code&gt;@Override
public void doView(RenderRequest request, RenderResponse response) throws IOException, PortletException {
    ThemeDisplay theme = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;

&amp;amp;nbsp;   List&amp;lt;sitenavigationmenu&amp;gt; menus = SiteNavigationMenuLocalServiceUtil.getSiteNavigationMenus(theme.getLayout().getGroupId());
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;SiteNavigationMenu menu = findMenu(menus);
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;if (menu != null) {
        PortletPreferences preferences = PortletPreferencesLocalServiceUtil.getDefaultPreferences(theme.getCompanyId(), "com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet");
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;preferences.setValue("siteNavigationMenuId", Long.toString(menu.getSiteNavigationMenuId()));
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;String xml = PortletPreferencesFactoryUtil.toXML(preferences);
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;request.setAttribute("preferences", xml);
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;}
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;super.doView(request, response);
}&amp;amp;nbsp; &amp;amp;nbsp; 

private SiteNavigationMenu findMenu(List&amp;lt;sitenavigationmenu&amp;gt; menus) {
    for (SiteNavigationMenu menu : menus) {
&amp;amp;nbsp; &amp;amp;nbsp;     if (menu.getName().equals("Main Menu")) {
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;     return menu;
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; }
&amp;amp;nbsp; &amp;amp;nbsp; }&amp;amp;nbsp;
 &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; 
&amp;amp;nbsp;   return null;
}&amp;lt;/sitenavigationmenu&amp;gt;&amp;lt;/sitenavigationmenu&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;And in my view.jsp:&lt;pre&gt;&lt;code&gt;&amp;amp;lt;% String preferences = (String) request.getAttribute("preferences"); %&amp;amp;gt;

&amp;lt;liferay-portlet:runtime &amp;nbsp; defaultPreferences="&amp;lt;%= preferences %&amp;gt;" portletName="com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet_INSTANCE_some_id" /&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;So to explain the code: on my doView method I find the menu that is called "Main Menu". If the Menu is not null, I get the preferences of the default Navigation Menu Portlet and set the value for the "siteNavigationMenuId" the menuId. Finally I convert to a XML String and pass it as a request attribute. On my view.jsp I get this attribute and set it as my "defaultPreferences".&lt;br&gt;&lt;br&gt;This works the first time. But If I delete my Main Menu and create another with the same name, the second one will have a different ID. The doView method will pass an attribute with a differente "siteNavigationMenuId", but the "defaultPreferences" on the JSP is still trying to get the previous menuId.&lt;br&gt;&lt;br&gt;My guess is that Liferay is saving my "com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet_INSTANCE_some_id" on the database and is using it instead of updating it.&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Fabio Carvalho</dc:creator>
    <dc:date>2019-09-11T15:58:09Z</dc:date>
  </entry>
</feed>
