src/main/java/de/uapcore/lightpit/modules/LanguageModule.java

changeset 42
f962ff9dd44e
parent 40
276ef00a336d
child 43
9abf0bf44c7b
equal deleted inserted replaced
41:4f1c026a8aab 42:f962ff9dd44e
27 * 27 *
28 */ 28 */
29 package de.uapcore.lightpit.modules; 29 package de.uapcore.lightpit.modules;
30 30
31 import de.uapcore.lightpit.*; 31 import de.uapcore.lightpit.*;
32 import de.uapcore.lightpit.dao.DataAccessObjects;
33 import org.slf4j.Logger; 32 import org.slf4j.Logger;
34 import org.slf4j.LoggerFactory; 33 import org.slf4j.LoggerFactory;
35 34
36 import javax.servlet.ServletException; 35 import javax.servlet.ServletException;
37 import javax.servlet.annotation.WebServlet; 36 import javax.servlet.annotation.WebServlet;
84 super.destroy(); 83 super.destroy();
85 languages.clear(); 84 languages.clear();
86 } 85 }
87 86
88 @RequestMapping(method = HttpMethod.GET) 87 @RequestMapping(method = HttpMethod.GET)
89 public ResponseType handle(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) { 88 public ResponseType handle(HttpServletRequest req) {
90 89
91 req.setAttribute("languages", languages); 90 req.setAttribute("languages", languages);
92 req.setAttribute("browserLanguage", req.getLocale()); 91 req.setAttribute("browserLanguage", req.getLocale());
93 92
94 setStylesheet(req, "language"); 93 setStylesheet(req, "language");
95 setDynamicFragment(req, "language"); 94 setDynamicFragment(req, "language");
96 return ResponseType.HTML_FULL; 95 return ResponseType.HTML_FULL;
97 } 96 }
98 97
99 @RequestMapping(method = HttpMethod.POST) 98 @RequestMapping(method = HttpMethod.POST)
100 public ResponseType switchLanguage(HttpServletRequest req, HttpServletResponse resp, DataAccessObjects dao) { 99 public ResponseType switchLanguage(HttpServletRequest req, HttpServletResponse resp) {
101 100
102 Optional<Locale> chosenLanguage = Optional.ofNullable(req.getParameter("language")) 101 Optional<Locale> chosenLanguage = Optional.ofNullable(req.getParameter("language"))
103 .map(Locale::forLanguageTag) 102 .map(Locale::forLanguageTag)
104 .filter((l) -> !l.getLanguage().isEmpty()); 103 .filter((l) -> !l.getLanguage().isEmpty());
105 104
106 chosenLanguage.ifPresent((l) -> req.getSession().setAttribute(Constants.SESSION_ATTR_LANGUAGE, l)); 105 chosenLanguage.ifPresent((l) -> req.getSession().setAttribute(Constants.SESSION_ATTR_LANGUAGE, l));
107 chosenLanguage.ifPresent(resp::setLocale); 106 chosenLanguage.ifPresent(resp::setLocale);
108 107
109 return handle(req, resp, dao); 108 return handle(req);
110 } 109 }
111 } 110 }

mercurial