利用jstl标签实现国际化


1、 我们编写中英文资源文件message_en.propertiessmessage_en.properties两个文件要放到项目的根目录下;

2、 jsp中利用jstl标签引用资源文件,同时给该项目导入jstl.jarstandard.jar这两个jar包,在jsp页面中引入下面连个库文件

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

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

....

<body>

       <!--    设置默认语言  -->

 <c:set var="loc"   value="zh"/>

<!--区域语言的值从传过来的参数中得到-->

 <c:if test="${!(empty sessionScope.local)}">

  <c:set var="loc"   value="${sessionScope.local}"/>

</c:if>

      <fmt:setLocale value="${loc}" />           <!--指定区域语言-->

       <fmt:bundle basename="message">   <!-- 指定使用basenamemessage的资源文件,也即资源文件第一个单词为message-->

           <center>

           <table>

               <tr>

                   <td><fmt:message   key="email"/></td>

                   <td><input   type="text" name="email"></td>  

               </tr>

           </table>

           </center>  

       </fmt:bundle>   <!—使用的标签要在这个标签包含里才如果没有写这个的话会报错!/index.jsp(35,0) Unterminated &lt;fmt:bundle tag

 

-->

    </body>

 

设置切换

<th>Language:<img   id="ch" src="resource/image/cn.png">

 <img id="ck"   src="resource/image/ck.png">

</th>

<script type="text/javascript">

<!--

中英文点击事件

ajax异步刷新,切换

//-->

$(document).ready(function(){

    $("#ch").click(function(){

        $.ajax({

            url:"setLanguage.do",

        data: "language=zh",

           success:function(result){

            location.reload();

        }});

        });

    $("#ck").click(function(){

        $.ajax({

            url:"setLanguage.do",

        data: "language=en",

           success:function(result){

            location.reload();

        }});

        });

    });

 

</script>

 

 

后台接受参数,设置到语言字体到session

public void SetLanguage(HttpServletRequest request,

            HttpServletResponse response) {

        String lan = request.getParameter("language");

        if("en".equals(lan)){

            local=new Locale("en");

        }else{

         

        local = new Locale("zh");

        }

       

        request.getSession().setAttribute("local", local);

}

最后做了一个小demo如果不了解可以看一下demo, http://pan.baidu.com/s/1kTIFlJL


你可能感兴趣的:(jstl,国际标准化)