package com.raysmond.blog.admin.controllers; import com.raysmond.blog.forms.SettingsForm; import com.raysmond.blog.services.AppSetting; import com.raysmond.blog.support.web.MessageHelper; import com.raysmond.blog.utils.DTOUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.Errors; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import javax.validation.Valid; /** * @author Raysmond<i@raysmond.com> */ @Controller @RequestMapping("admin") public class AdminController { private AppSetting appSetting; @Autowired public AdminController( AppSetting appSetting){ this.appSetting = appSetting; } @RequestMapping("") public String index(){ return "admin/home/index"; } @RequestMapping(value = "settings") public String settings(Model model){ SettingsForm settingsForm = DTOUtil.map(appSetting, SettingsForm.class); model.addAttribute("settings", settingsForm); return "admin/home/settings"; } @RequestMapping(value = "settings", method = RequestMethod.POST) public String updateSettings(@Valid SettingsForm settingsForm, Errors errors, Model model, RedirectAttributes ra){ if (errors.hasErrors()){ return "admin/settings"; } else { appSetting.setSiteName(settingsForm.getSiteName()); appSetting.setSiteSlogan(settingsForm.getSiteSlogan()); appSetting.setPageSize(settingsForm.getPageSize()); MessageHelper.addSuccessAttribute(ra, "Update settings successfully."); return "redirect:settings"; } } }