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

changeset 157
1e6f16fad3a5
parent 86
0a658e53177c
child 158
4f912cd42876
equal deleted inserted replaced
156:c5d6820d884e 157:1e6f16fad3a5
35 35
36 import javax.servlet.ServletException; 36 import javax.servlet.ServletException;
37 import javax.servlet.annotation.WebServlet; 37 import javax.servlet.annotation.WebServlet;
38 import javax.servlet.http.HttpServletRequest; 38 import javax.servlet.http.HttpServletRequest;
39 import javax.servlet.http.HttpServletResponse; 39 import javax.servlet.http.HttpServletResponse;
40 import java.io.IOException;
40 import java.util.*; 41 import java.util.*;
41 42
42 @WebServlet( 43 @WebServlet(
43 name = "LanguageModule", 44 name = "LanguageModule",
44 urlPatterns = "/language/*" 45 urlPatterns = "/language/*"
83 super.destroy(); 84 super.destroy();
84 languages.clear(); 85 languages.clear();
85 } 86 }
86 87
87 @RequestMapping(method = HttpMethod.GET) 88 @RequestMapping(method = HttpMethod.GET)
88 public ResponseType handle(HttpServletRequest req) { 89 public void handle(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
89 90
90 final var viewModel = new LanguageView(); 91 final var viewModel = new LanguageView();
91 viewModel.setLanguages(languages); 92 viewModel.setLanguages(languages);
92 viewModel.setBrowserLanguage(req.getLocale()); 93 viewModel.setBrowserLanguage(req.getLocale());
93 viewModel.setCurrentLanguage((Locale)req.getSession().getAttribute(Constants.SESSION_ATTR_LANGUAGE)); 94 viewModel.setCurrentLanguage((Locale)req.getSession().getAttribute(Constants.SESSION_ATTR_LANGUAGE));
94 95
95 setViewModel(req, viewModel); 96 setViewModel(req, viewModel);
96 setStylesheet(req, "language"); 97 setStylesheet(req, "language");
97 setContentPage(req, "language"); 98 setContentPage(req, "language");
98 return ResponseType.HTML; 99
100 renderSite(req, resp);
99 } 101 }
100 102
101 @RequestMapping(method = HttpMethod.POST) 103 @RequestMapping(method = HttpMethod.POST)
102 public ResponseType switchLanguage(HttpServletRequest req, HttpServletResponse resp) { 104 public void switchLanguage(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
103 105
104 Optional<Locale> chosenLanguage = Optional.ofNullable(req.getParameter("language")) 106 Optional<Locale> chosenLanguage = Optional.ofNullable(req.getParameter("language"))
105 .map(Locale::forLanguageTag) 107 .map(Locale::forLanguageTag)
106 .filter((l) -> !l.getLanguage().isEmpty()); 108 .filter((l) -> !l.getLanguage().isEmpty());
107 109
108 chosenLanguage.ifPresent((l) -> req.getSession().setAttribute(Constants.SESSION_ATTR_LANGUAGE, l)); 110 chosenLanguage.ifPresent((l) -> req.getSession().setAttribute(Constants.SESSION_ATTR_LANGUAGE, l));
109 chosenLanguage.ifPresent(resp::setLocale); 111 chosenLanguage.ifPresent(resp::setLocale);
110 112
111 return handle(req); 113 handle(req, resp);
112 } 114 }
113 } 115 }

mercurial