`

Spring MVC3.0国际化

 
阅读更多

Spring MVC3.0国际化

< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> 

说明:在这里简单实现Spring MVC国际化。{这里用到注解,请参考Spring MVC注解Demo}

步骤:

     创建一个demoweb工程,加入相应的jar包,配置web.xml文件,同样可以参照Spring MVC注解Demoweb.xml文件的代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"

    xmlns="http://java.sun.com/xml/ns/j2ee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <servlet>

        <servlet-name>demo</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>

            <param-name>contextConfigLocation</param-name>

            <param-val>/WEB-INF/config/spring/*.xml</param-val>

        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet-mapping>

        <servlet-name>demo</servlet-name>

        <url-pattern>*.html</url-pattern>

    </servlet-mapping>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

说明:/WEB-INF/config/spring/*.xml表示在此路径下的所有已.xmlSpring配置文件都会在初始化时加载。

     /WEB-INF/config/spring路径下创建一个Spring-common.xml文件,配置Spring相关信息,代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    xmlns:context="http://www.springframework.org/schema/context" 

    xsi:schemaLocation="  

    http://www.springframework.org/schema/beans   

    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

    http://www.springframework.org/schema/mvc   

    http://www.springframework.org/schema/beans/spring-mvc-3.0.xsd    

    http://www.springframework.org/schema/context  

    http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <!-- 控制器所在的包{添加注解的Controller} -->

    <context:component-scan base-package="com.teana.controller" />

    <!-- 国际化支持 -->

    <bean id="messageSource"class="org.springframework.context.support.ResourceBundleMessageSource">

        <property name="basename">

            <val>messages</val>

        </property>

    </bean>

    <!-- jsp文件的前缀和后缀 -->

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <property name="prefix" val="/WEB-INF/jsp/" />

        <property name="s?ix" val=".jsp" />

    </bean>

</beans>

     src目录下创建Controller,名称为TestController.java,包结构为com.teana.controller,其代码如下:

package com.teana.controller;

 

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.ReqstMapping;

import org.springframework.web.bind.annotation.ReqstMethod;

 

@Controller

@ReqstMapping("/teana")

p lic class TestController

{

       @ReqstMapping("/start/{name}/{age}")

       p lic String start(@PathVariable("name") String name,

                     @PathVariable("age") int age)

       {

              System.out.println("姓名:" + name + ", 年龄:" + age);

              return "start";

       }

}

     在工程的src目录下创建国际化资源文件分别为messages.propertiesmessages_en_US.propertiesmessages_cn_ZH.properties文件,代码如下:

messages.properties的代码:

title=Spring MVC Demo{i18n}

welcome=Welcome to prod? professional DEMO S?SS are annotated MVC\!

messages_en_US.properties的代码:

title=(US)Spring MVC Demo{i18n}

welcome=(US)Welcome to prod? professional DEMO S?SS are annotated MVC\!

messages_cn_ZH.properties的代码:

title=Spring MVC Demo{\国\际\化}

welcome=\欢\迎\来\到SPRING MVC \注\MO S?SS\?01

     根据Spring-common.xml配置文件和TestController.java文件配置在WEB-INF/jsp/路径下配置start.jsp文件代码如下:

<%@ page lang ge="java" import="java.util.*" pageEncoding="UTF-8"%>

<!-- 使用Spring标签 -->

<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>

<!DOCTYPE HTML P LIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title><spring:message code="title" /></title>

  </head>

  <body>

  <center>

    <br/><br/>

    <h2 style="color:red;"><spring:message code="welcome" /></h2>

  </center>

  </body>

</html>

最后我们在浏览器输入:http://localhost:8080/demo/teana/start/linda/22.html 在不同的local环境下即可看到效果。

总结:

Spring做国际化时经常会报:

org.springframework.context.NoS hMessageException: No message found under code 'title' for locale 'zh_CN'.
这样的错误。请注意以下几点:
 新建资源文件时,尽量右击项目新建文件,来增加.
② 属性文件名的写法:

           messages_zh_CN.properties  (中文)

           messages_en_US.properties  (英文)
③ 配置messageSource这个bean(注意:一定是messageSource不是messageResource ,这是Spring规定的)例如:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">

        <property name="basename">

            <val>messages</val>

        </property>

</bean>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics