Как динамически менять языки локали в весеннем mvc? - PullRequest
0 голосов
/ 23 января 2019

Я хочу создать фиктивный проект весной mvc, используя локализацию (я хочу полностью поддерживать UTF-8 в моем веб-приложении) с Eclipse Java EE IDE для веб-разработчиков, использующих версию 4.7.0 Oxygen Release и версию Apache Tomcat Server-9,0.Все работало нормально, но когда я нажимаю на ссылку «хинди».Это кодирует по-разному.Ниже следует мой код.

Вот мой dispatcher-servlet.xml: -

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p" 
xmlns:mvc="http://www.springframework.org/schema/mvc"


xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
                    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
                    http://www.springframework.org/schema/mvc
                    http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
                    http://www.springframework.org/schema/aop 
                    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

<context:component-scan base-package="dummy" />
   <mvc:annotation-driven />

<bean id="viewResolver2" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>WEB-INF/views/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
    <property name="order" value="1" />
    </bean>

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>


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

<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
    <property name="paramName" value="language" />
</bean>

<mvc:interceptors>
<mvc:interceptor>
    <mvc:mapping path="/**" />
    <bean 
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="language" />
    </bean>
</mvc:interceptor>
</mvc:interceptors>

<bean id="CookielocaleResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="cookieName" value="language" />
<property name="defaultLocale" value="en" />
</bean>


 <bean id="messageSource"
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="WEB-INF/messages/messages" />
    <property name="defaultEncoding" value="UTF-8" />
</bean>

<bean
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="interceptors">
    <list>
        <ref bean="localeChangeInterceptor" />
    </list>
</property>
</bean>

А вот мой Login.jsp: -

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<title>Login Form</title>
<html lang="en" dir="ltr">
 <head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-    validate/1.19.0/jquery.validate.min.js"></script>
 </head>
  <body>
<spring:message code="login.placeholder.username" var="login.placeholder.username"> </spring:message>
<spring:message code="login.placeholder.password" var="login.placeholder.password"> </spring:message>
<div class="container">
    <div class="rows">
        <div class="col-sm-6">
        Language : <a href="?language=en">English</a>|<a href="?language=hi">Hindi</a>
            <form name="formdemo" method="post" id="form" novalidate="novalidate">
                <div class="form-group">
                    <label for="username"><spring:message code="login.label.username" text="username" /></label>
                    <input type="text" name="username" id= "username" placeholder="${login.placeholder.username}" class="form-control" required />
                </div>

                <div class="form-group">
                    <label for="password" ><spring:message code="login.label.password" text="Password"/></label>
                    <input id="password" type="password"  name="password"  placeholder="${login.placeholder.password}" class="form-control" required />
                </div>
                <div id="result"></div>
                <button type="submit" id ="submit" class="btn btn-primary"><spring:message code="login.controls.submit" text="Submit" /></button>
                <button type="button" class="btn btn-primary" onclick="location.href='printAllUsers'"><spring:message code="login.controls.ShowAll" text="ShowAllUsers" /></button>
            </form>
        </div>
    </div>
</div>

Ниже приведены мои скриншоты, которые помогут вам в дальнейшем.

Вот мой макет проекта: -

enter image description here

Этомой приветственный файл для входа на английском языке: -

enter image description here

И когда я нажимаю «Хинди», он должен быть переведен на язык хинди.Но следующее изображение отображается необычно: -

enter image description here

Что не так с моим кодом?Кто-нибудь указывает на мою ошибку здесь?Пожалуйста, кто-нибудь может мне помочь с этим вопросом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...