我试图让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);

}


而且效果很好。

08-28 21:26