zoukankan      html  css  js  c++  java
  • SpringMVC 国际化问题

    1、首先在src文件下添加3个properties文件

      a、message.properties

    1 message.username=UserName
    2 message.password=Password

      b、message_en.properties

    1 message.username=UserName
    2 message.password=Password

      c、message_zh.properties

    1 message.username=u7528u6237u540D
    2 message.password=u5BC6u7801

    2、配置spring-mvc.xml文件

    1 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    2     <!-- 指定文件基名 -->
    3      <property name="basename" value="message"/>
    4      <!-- 当没有找到资源文件时,用这基名文件 -->
    5      <property name="useCodeAsDefaultMessage" value="true" />    
    6  </bean>

      这里配置属性userCodeAsDefaultMessage=true。意思当在其他语言区域里,没有找到对应的国际化文件。比如日语区、韩语区等。默认使用message.properties文件。当为false时,显示有问题。

    3、配置Controller

     1 @Controller
     2 public class UserController {
     3 
     4     @RequestMapping("/updateUser")
     5     public String update(){
     6 
     7         return "success";
     8     }
     9     
    10 }

    4、Jsp页面

      要做jsp页面中使用国际化信息。需要添加一个fmt标签。该标签在JSTL标签表中。添加方式

    1 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

      index.jsp

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
     3 
     4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     5 <html>
     6   <head>
     7     <title>My JSP 'hello.jsp' starting page</title>
     8   </head>
     9   
    10   <body>
    11     
    12     <fmt:message key="message.username"/><input type="text" name="username" /><br/>
    13     <fmt:message key="message.password"/><input type="text" name="password" /><br/>
    14   </body>
    15 </html>

      hello.jsp

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
     3 
     4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     5 <html>
     6   <head>
     7     <title>My JSP 'hello.jsp' starting page</title>
     8   </head>
     9   
    10   <body>
    11     
    12     <fmt:message key="message.username"/><input type="text" name="username" /><br/>
    13     <fmt:message key="message.password"/><input type="text" name="password" /><br/>
    14   </body>
    15 </html>

      我们通过url访问success.jsp页面。

      访问地址:http://localhost:8080/springmvc-1/updateUser

     

      我们访问index.jsp页面http://localhost:8080/springmvc-1

      结果出现这样的结果

    为什么JSP页面都是一样的。为什么结果不一样呢?

      原因是index.jsp页面可以直接被访问到,而success.jsp页面在WEB-INF下面,不能够直接访问,需要通过servlet转发的方式才够访问。在SpringMVC中,DispatcherServlet前端控制器,拦截了所有请求,对http://localhost:8080/springmvc-1/updateUser访问。交个SpringMVC去处理。而在spring-mvc.xml配置了ResourceBundleMessageSource,所以在success页面中可以使用国际化信息。

       综上所述:要使用基于页面的国际化信息,需要使用转发的方式才能生效。

     

      

  • 相关阅读:
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    mysql备份及恢复
    mysql备份及恢复
    mysql备份及恢复
  • 原文地址:https://www.cnblogs.com/caoyc/p/5637865.html
Copyright © 2011-2022 走看看