【问题标题】:Changing locale action causes 404更改语言环境操作会导致 404
【发布时间】:2020-03-13 16:30:24
【问题描述】:

我正在尝试在我的 spring 应用程序中构建一个函数,该函数可以更改本地语言以切换语言。我认为我的逻辑是正确的,但我想不是。当我点击 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");
}     

我的 config.xml 中的 bean localeResolver

 <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");
    }  

【问题讨论】:

    标签: java spring internationalization locale


    【解决方案1】:

    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>
    

    【讨论】:

      猜你喜欢
      • 2018-06-09
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多