Изменение действия локали вызывает 404 - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь встроить функцию в мое весеннее приложение, которая меняет местное на переключение языков. Я думал, что мой лог c правильный, но я думаю, что нет. Когда я нажимаю кнопку set locale , я получаю 404

. Пользователь выбирает кнопку в JSP, как показано в Allbeers. jsp

   <form action="setLocale">
        <select name="locale">
            <option value="en"><spring:message code="lang.english"/></option>
            <option value="es"><spring:message code="lang.spanish"/></option>

        </select>
        <input type="submit" value="<spring:message code="button.setLocale"/>"/>
    </form>

форма акта приведет вас к контроллеру beerController. java

@RequestMapping(value = "setLocale", method = RequestMethod.GET)
public ModelAndView SetLocale(@RequestParam("locale") String locale, HttpServletRequest request, HttpServletResponse response) 
{
    LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
    localeResolver.setLocale(request, response, StringUtils.parseLocaleString(locale));
    return new ModelAndView("redirect:/beer");
}     

мой bean localeResolver в моей конфигурации. xml

 <bean id="localeResolver"
          class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
    <property name="defaultLocale" value="en_IE" />
</bean>

вот весь мой контроллер код, если нужно знать, как я сопоставляю методы

@Controller
@RequestMapping("/beer")
@SessionAttributes("beer")
public class beerController {

      @Autowired
    beerService service;

    @RequestMapping("")
    public ModelAndView getBeers() {
        //int x = Integer.parseInt("abc");
        return new ModelAndView("/Allbeers", "beerList", service.getAllBeers());
    }
@RequestMapping(value = "setLocale", method = RequestMethod.GET)
    public ModelAndView SetLocale(@RequestParam("locale") String locale, HttpServletRequest request, HttpServletResponse response) 
    {
        LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
        localeResolver.setLocale(request, response, StringUtils.parseLocaleString(locale));
        return new ModelAndView("redirect:/beer");
    }  

1 Ответ

0 голосов
/ 14 марта 2020

Действие формы в jsp не имеет правильного пути

 <form action="/Assignment3/beer/setLocale">
        <select name="locale">
            <option value="en"><spring:message code="lang.english"/></option>
            <option value="es"><spring:message code="lang.spanish"/></option>

        </select>
        <input type="submit" value="<spring:message code="button.setLocale"/>"/>
    </form>
...