我试图让portletPreferences输入到我的ConfigActionImpl中,如下所示:
public void processAction(PortletConfig arg0, ActionRequest arg1,
ActionResponse arg2) throws Exception {
String portletResource = ParamUtil.getString(arg1, "portletResource");
final String newlink= ParamUtil.getString(arg1, "newlink");
final PortletPreferences portletPreferences =
PortletPreferencesFactoryUtil.getPortletSetup(arg1, portletResource);
portletPreferences.setValue("newlink", newlink);
portletPreferences.store();
SessionMessages.add(arg1, arg0.getPortletName() + ".doConfigure");
}
我想在第一次加载时显示默认的首选项,并根据需要更改它。
我当时想是这样的:
protected String showView(ModelMap model, PortletRequest request) {
preferences.getValue("newlink", monUrl);
}
这是我的portlet唯一不起作用的部分,当我直接编写url时,该URL加载良好。
然后,我在代码中使用monUrl。
我有一个空指针异常
我对portletPreferences不太了解,发现没有任何帮助。
我只想在变量中加载首选项,然后再使用它。
最佳答案
我自己找到了解决方法。
实际上,我在showView中用此“ PortletPreferences首选项”替换了此“ PortletRequest请求”
以及“ preferences.getValue(“ newlink”,monUrl);”通过“ monUrl preferences.getValue(” newlink“,monUrl);”
protected String showView(ModelMap model, PortletPreferences preferences) {
monUrl = preferences.getValue("newlink", monUrl);
}
而且效果很好。