在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);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 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();
Run Code Online (Sandbox Code Playgroud)
这有点令人困惑,因为它的名称PortletPreferences(暗示用户特定的偏好)而不是像PortletConfiguration(暗示管理员控制的全局配置)...所以只需将其视为portlet实例的偏好,而不是特定于任何用户.