3

portlet.xml に触れずに、ポートレットの設定をしようとしています。

ここに私のポートレットがあります:

-myportletclass
-myportletjsp
-myconclass
-myconfjsp

設定をクリックすると、confjsp が表示され、設定のフォームが表示されます。そして、送信するときに、設定をフォームの値に設定します。

しかし、portlet.xml を変更しない限り、デフォルト値はありません。

何をどこに追加すればよいですか?

構成クラスのレンダリングで一部の人がそれを行うのを見ましたが、彼らのやり方では機能しません。

よろしく。ありがとうございました。

編集:私の好みを設定する方法:

まず、単純なフォーム i my conf jsp、basic、追加する必要はありません。次に、私は ConfController を持っています:

@Controller
@RequestMapping("EDIT")
public class ConfigurationController {


    @ModelAttribute("validatePref")
    public ValidatePrefForm getValidatePrefForm() {
        ValidatePrefForm form = new ValidatePrefForm();
        return form;
    }

    @ActionMapping(params = "action=validatePref")
    public void processAction(@ModelAttribute("validatePref") ValidatePrefForm form,
            PortletPreferences portletPreferences, ActionResponse response)
            throws Exception {

        String mylink = form.getMylink();




        if (null != mylink && !mylink .equals("")) {

            portletPreferences.setValue("mylink ", mylink );

        }

        portletPreferences.store();

    }

    @RenderMapping
    public String render() throws Exception {
        return "myportletjsp.jsp";

    }

}

そして、私のポートレットでは、値を取得するためにこれを持っています:

mylink= preferences.getValue("mylink", mylink);

        if(null==mylink){
            mylink= mydefaultUrl;

        }

そして、私はmylinkを使うことができます

4

1 に答える 1

6

まず第一に、portlet.xml は、デフォルトのポートレット設定を持つ優れた場所です。

何らかの理由でこれが絶対に必要ない場合は、もちろん、設定がnullであるかどうかを確認してから、デフォルトを想定してください。アクション、レンダリング、イベント、またはリソース フェーズで、ポートレット プリファレンスを取得する場所でこれを行うだけです。

于 2012-06-25T13:41:54.487 に答える