2012-06-25 3 views
3

Я пытаюсь установить параметры портлета, не касаясь портлета.xml.Установить портлет по умолчанию Предпочтения

Вот мой портлет:

-myportletclass 
-myportletjsp 
-myconclass 
-myconfjsp 

Когда я нажимаю на предпочтениях, я могу увидеть confjsp, которым отобразить форму для моих предпочтений. И, когда я его отправлю, задайте предпочтения значениям в форме.

Но у меня нет никаких значений по умолчанию, без изменения portlet.xml.

Какой цвет я добавляю и где?

Я видел, как некоторые делают это в рендеринг класса конфигурации, но это не работает.

С уважением. Спасибо.

редактировать: путь я установить мои предпочтения:

во-первых, у меня есть простой вид я мой конф JSP, основной, нет необходимости добавлять его; Тогда, я имею 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

ответ

6

Прежде всего: portlet.xml - отличное место для настройки предпочтений портлета по умолчанию.

Если вы абсолютно не хотите этого по какой-либо причине, конечно, вы можете проверить, есть ли предпочтение null, а затем принять ваши значения по умолчанию. Просто сделайте это, если вы получите предпочтения портлета - в фазе action-, render-, event- или resource-phase.

+0

Но, во-вторых, кажется, что когда я добавляю новый экземпляр портлета, он сохраняет настройки, которые я установил для портлета уже на странице. Как я могу это исправить: иметь значение по умолчанию, когда у меня был портлет на странице. Спасибо. Edit: если возможно, я предпочитаю способ без использования portlet.xml, но я не исключаю его. –

+0

@Jean: Как вы настраиваете свои предпочтения? Поскольку я думаю, что настройки портлета заданы для каждого экземпляра портлета, добавленного на страницу, а не для портлета или пользователя в целом. Liferay также устанавливает значение по умолчанию для настроек, вы можете проверить 'init.jsp' (если у вас есть источник) для встроенных портлетов liferay. –

+0

Я редактирую свой вопрос для вас, Пракаш. –