4

Liferay 6.0プラグインMVCポートレットで、ポートレットクラスからポートレット構成にアクセスするにはどうすればよいですか?

「構成」とは、ポートレットのインスタンスに固有であり、ユーザー固有ではない値を意味することに注意してください。管理者がポートレット構成値を設定すると、すべてのユーザーに対して有効になります。

例えば:

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どのユーザーにも固有ではないポートレット インスタンスの設定と考えてください。

于 2011-09-23T14:48:37.030 に答える