2

ConfigActionImplにportletPreferencesを入力しようとしています。これは次のようになります。

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);
}

これは私のポートレットの中で機能しない唯一の部分であり、URLを直接書き込んだとき、URLは十分にロードされています。

次に、コードでmonUrlを使用します。nullポインタ例外があります

私はportletPreferencesをあまり知りませんが、何も役に立たないことがわかりました。

変数に設定をロードして、後で使用したいだけです。

4

1 に答える 1

4

私はそれを修正する方法を自分で見つけました。

実際、showViewでこの「PortletRequestrequest」をこの「PortletPreferencespreferences」に置き換えました

そしてこの"preferences.getValue(" newlink "、monUrl);" 「monUrlpreferences.getValue( "newlink"、monUrl);」

    protected String showView(ModelMap model, PortletPreferences preferences) {


            monUrl = preferences.getValue("newlink", monUrl);   

}

そしてそれはうまくいきます。

于 2012-06-20T13:39:19.963 に答える