Liferay 设置默认portlet首选项

Liferay 设置默认portlet首选项,liferay,portlet,Liferay,Portlet,我正在尝试设置portlet首选项,而不涉及portlet.xml 这是我的portlet: -myportletclass -myportletjsp -myconclass -myconfjsp 当我单击preferences时,我可以看到confjsp,它显示了我的首选项的表单。当我提交它时,将首选项设置为表单中的值 但是如果不修改portlet.xml,我没有任何默认值 我应该添加什么,在哪里添加 我看到一些人在config类的呈现中这样做,但它并没有按照他们的方式工作 问候。 多谢各

我正在尝试设置portlet首选项,而不涉及portlet.xml

这是我的portlet:

-myportletclass
-myportletjsp
-myconclass
-myconfjsp
当我单击preferences时,我可以看到confjsp,它显示了我的首选项的表单。当我提交它时,将首选项设置为表单中的值

但是如果不修改portlet.xml,我没有任何默认值

我应该添加什么,在哪里添加

我看到一些人在config类的呈现中这样做,但它并没有按照他们的方式工作

问候。 多谢各位

编辑:我设置首选项的方式:

首先,我有一个简单的表单我的confjsp,基本的,不需要添加它; 然后,我有一个控制器:

@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";

    }

}
然后,在我的portlet中,我有以下内容来获取值:

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

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

        }

然后我可以首先使用mylink:portlet.xml是一个拥有默认portlet首选项的好地方


如果出于某种原因,您绝对不希望这样做,那么您当然可以检查首选项是否为
null
,然后假设您的默认值。只要在操作、呈现、事件或资源阶段检索portlet首选项,就可以执行此操作。

但在第二种方式中,当我添加新的portlet实例时,它会保留我为页面中已存在的portlet设置的首选项。如何修复它:当我在页面中有portlet时,使用默认值。非常感谢。编辑:如果可能的话,我更喜欢不使用portlet.xml的方式,但我不排除它。@Jean:您如何设置您的首选项?因为我认为portlet首选项是为添加到页面的每个portlet实例设置的,而不是为整个portlet或用户设置的。Liferay还为首选项设置了默认值,您可以检查
init.jsp
(如果您有源代码)以查找Liferay的内置portlet。如果您不确定,请不要担心它与portlet.xml一起工作,以防万一。感谢@Olaf这帮助解决了我遇到的一个问题