与 Portlet 类中的 Liferay Portlet 配置进行交互

发布于 2024-12-04 18:40:40 字数 613 浏览 1 评论 0原文

在 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);
  }
}

In a Liferay 6.0 plugin MVC portlet, how do I access the portlet configuration from the portlet class?

Note that by "configuration" I mean values that are specific to an instance of the portlet and are not user-specific; if an administrator sets a portlet configuration value, it should take effect for all users.

e.g.:

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);
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忘羡 2024-12-11 18:40:40

您可以利用 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 实例的首选项。

You can leverage Liferay's PortletPreferences service to accomplish this:

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();

It's a little confusing because it's named PortletPreferences (implies user-specific preferences) instead of something like PortletConfiguration (implies admin-controlled global configuration)... so just think of it as preferences for the portlet instance that are not specific to any user.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文