我试图让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时,网址很好。
然后,我在代码中使用monUrl。 我有一个空指针异常
我不太了解portletPreferences,发现什么都没有帮助我。
我只是想在我的变量中加载首选项并在之后使用它。
答案 0 :(得分:4)
我自己找到了解决方法。
实际上我在showView中用这个“PortletPreferences首选项”替换了这个“PortletRequest请求”
和这个“preferences.getValue(”newlink“,monUrl);” “monUrl preferences.getValue(”newlink“,monUrl);”
protected String showView(ModelMap model, PortletPreferences preferences) {
monUrl = preferences.getValue("newlink", monUrl);
}
它运作正常。