4

在 Liferay 6.0 插件 MVC portlet 中,如何从 portlet 类访问 portlet 配置?

请注意,“配置”是指特定于 portlet 实例的值,而不是特定于用户的值;如果管理员设置了 portlet 配置值,它应该对所有用户生效。

例如:

public class MyPortlet extends MVCPortlet
{
  @Override
  public void doView(RenderRequest renderRequest, RenderResponse renderResponse)
    throws IOException, PortletException
  {
    // Fill in the blank; what goes here?
    String configValue = ?;

    renderRequest.setAttribute("some-key", configValue);        

    super.doView(renderRequest, renderResponse);
  }
}
4

1 回答 1

5

您可以利用 Liferay 的PortletPreferences服务来完成此任务:

String portletInstanceId = (String) renderRequest.getAttribute(WebKeys.PORTLET_ID);

PortletPreferences config = PortletPreferencesFactoryUtil.getPortletSetup(request, portletInstanceId);

// To retrieve a value from configuration:
String value = config.getValue("key", "default value");

// To store a value:
config.setValue("key", newValue);
config.store();

这有点令人困惑,因为它被命名为PortletPreferences(暗示特定于用户的首选项)而不是类似的东西PortletConfiguration(暗示由管理员控制的全局配置)......所以只需将其视为不特定于任何用户的 portlet 实例的首选项。

于 2011-09-23T14:48:37.030 回答