package org.springframework.samples.petportal.portlet; import java.util.LinkedHashSet; import java.util.Set; import javax.portlet.PortletPreferences; import org.springframework.samples.petportal.service.PetService; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; /** * This controller provides a simple example of modifying portlet preferences. * In this case, it allows the user to change the default date format. * * @author Mark Fisher * @author Juergen Hoeller */ @Controller @RequestMapping("EDIT") public class DateFormatController { private final Set availableFormats; public DateFormatController() { this.availableFormats = new LinkedHashSet(4); this.availableFormats.add(PetService.DEFAULT_DATE_FORMAT); this.availableFormats.add("MM-dd-yyyy"); this.availableFormats.add("dd/MM/yyyy"); this.availableFormats.add("dd-MM-yyyy"); } /** * In the render phase, the current format and available formats will be * exposed to the 'dateFormat' view via the model. */ @RequestMapping public String showPreferences(PortletPreferences preferences, Model model) { model.addAttribute("currentFormat", preferences.getValue("dateFormat", PetService.DEFAULT_DATE_FORMAT)); model.addAttribute("availableFormats", this.availableFormats); return "dateFormat"; } /** * In the action phase, the dateFormat preference is modified. To persist any * modifications, the PortletPreferences must be stored. */ @RequestMapping public void changePreference(PortletPreferences preferences, @RequestParam("dateFormat") String dateFormat) throws Exception { preferences.setValue("dateFormat", dateFormat); preferences.store(); } }