在Liferay 6.0插件MVC portlet中,如何从portlet类访问portlet配置?
请注意,“配置”是指特定于portlet实例的值,并且不特定于用户;如果管理员设置了portlet配置值,它应该对所有用户生效。
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);
}
}
答案 0 :(得分: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实例。