基于Session的国际化实现方法

如何将我们网站的其它内容(如菜单、标题等)做国际化处理呢?这就是本篇要将的内容—>国际化。

在项目的spring.xml文件添加的内容如下

<mvc:interceptors>
<span style="white-space:pre">  </span><!-- 国际化操作拦截器 如果采用基于(请求/Session/Cookie)则必需配置 -->
  <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>

在项目中的源文件夹resources中添加myproperties.properties、myproperties_zh_.properties、myproperties_en_.properties三个文件

下面是jsp页面的一些简单信息如下,仅仅是演示没考虑其他的:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<%
  Locale name = (Locale) session.getAttribute("i18nlanguage");
  ResourceBundle myResourcesBundle = ResourceBundle.getBundle("myproperties",name);
%>
<body>
  <a href="${pageContext.request.contextPath}/index/findex.do?langType=en&page=Home">ENG</a> |
 <a href="${pageContext.request.contextPath}/index/findex.do?langType=zh&page=Home"><%=myResourcesBundle.getString("simplified")%></a>
</body>
</html>

后台Action层代码如下:

package com.zhidao.oms.index; 

import java.util.Locale; 

import javax.servlet.http.HttpServletRequest; 

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; 

@Controller
@RequestMapping("/index")
public class IndexAction { 

  @RequestMapping("/findex")
  public String Findex(HttpServletRequest request,@RequestParam String langType,String page){ 

  if(langType.equals("zh")){
      Locale locale = new Locale("zh", "CN");
      request.getSession().setAttribute("i18nlanguage",locale);
    }
    else if(langType.equals("en")){
      Locale locale = new Locale("en", "US");
      request.getSession().setAttribute("i18nlanguage",locale);
    }else{
      request.getSession().setAttribute("i18nlanguage",Locale.getDefault());
    }
    return "/front/"+page+".jsp";
  } 

}

有关的效果图展示大家测试一下就好了!写的不好的地方希望大家批评指正。

以上这篇基于Session的国际化实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • JSP Spring ApplicationContext的国际化支持

    JSP Spring  ApplicationContext的国际化支持 1.ApplicationContext接口继承了MessageResource接口,因此使用ApplicationContext作为spring容器可以使用国际化资源文件. 2.在MessageResource接口中定义了两个主要用于国际化的方法: String getMessage(String param,Object[] args,Locale loc) ; String getMessage(String par

  • 学习SpringMVC——国际化+上传+下载详解

    一个软件,一个产品,都是一点点开发并完善起来的,功能越来越多,性能越来越强,用户体验越来越好--这每个指标的提高都需要切切实实的做点东西出来,好比,你的这个产品做大了,用的人多了,不仅仅再是上海人用,北京人用,还有印度人用,法国人用等等,可以说这个产品已经走上了国际化的大舞台.当印度的哥们输入url访问产品时,界面上弹出"欢迎您,三哥",估计哥们当场就蒙圈了.而这个时候,国际化就应运而生了. 要做国际化这道菜,真的没有想象中的那么复杂,反而很简单,不信你看-- 1. 注入Resourc

  • javaweb 国际化:DateFormat,NumberFormat,MessageFormat,ResourceBundle的使用

    Javaweb 国际化 DateFormat:格式化日期的工具类,本身是一个抽象类: NumberFormat:格式化 数字 到 数字字符串,或货币字符串的字符类; MessageFormat: 可以格式化模式字符串,模式字符串: 带占位符的字符串: "Date: {0}, Salary: {1}",可以通过 format 方法会模式字符串进行格式化 ResourceBundle:资源包类,在类路径(src)下需要有对应的资源文件: baseName.properties. 其中 ba

  • Java的Struts框架中的主题模板和国际化设置

    主题模板 如果不指定一个主题,然后Struts2中会使用默认的XHTML主题.例如Struts 2中选择标签: <s:textfield name="name" label="Name" /> 生成HTML标记: <tr> <td class="tdLabel"> <label for="empinfo_name" class="label">Name:<

  • JavaScript面对国际化编程时的一些建议

    什么是国际化? 国际化(Internationalization的缩写是i18n--i,中间18个字符,n)是将软件处理的能让来自各种地方使用各种语言的用户更简单使用的一个过程.假定某个用户来自某个地方说某种语言,他可能不经意间就得到一些错误提示.尤其是你甚至都没有做这种假设. function formatDate(d) { // Everyone uses month/date/year...right? var month = d.getMonth() + 1; var date = d.

  • 基于Session的国际化实现方法

    如何将我们网站的其它内容(如菜单.标题等)做国际化处理呢?这就是本篇要将的内容->国际化. 在项目的spring.xml文件添加的内容如下 <mvc:interceptors> <span style="white-space:pre"> </span><!-- 国际化操作拦截器 如果采用基于(请求/Session/Cookie)则必需配置 --> <bean class="org.springframework.w

  • Java Web基于Session的登录实现方法

    本文实例讲述了Java Web基于Session的登录实现方法.分享给大家供大家参考,具体如下: package cn.com.login; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpSer

  • asp.net基于session实现购物车的方法

    本文实例讲述了asp.net基于session实现购物车的方法.分享给大家供大家参考,具体如下: //加入购物车 protected void LinkButton2_Click(object sender, EventArgs e) { DataTable dt = null; //用户购买商品 如果 没有登录 则提示登录 if (Session["userName"] == null) { Common.MessageBox.ShowAndRedirectTo(this.Page,

  • Java Web开发之基于Session的购物商店实现方法

    本文实例讲述了Java Web开发之基于Session的购物商店实现方法.分享给大家供大家参考,具体如下: package cn.com.shopping; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.s

  • php基于session锁防止阻塞请求的方法分析

    本文实例讲述了php基于session锁防止阻塞请求的方法.分享给大家供大家参考,具体如下: 说明: 这是一篇参考国外网站http://konrness.com/php5/how-to-prevent-blocking-php-requests/ 的译文,前面一篇文章PHP编程中的Session阻塞问题与解决方法简单分析了php session阻塞的解决方法,这里给出另一种解决方法. 正文: 现代浏览器限制到一个host并发连接的数量一般为4或6.这意味着,如果您的web页面加载几十个来自同一个

  • Spring MVC 中获取session的几种方法(小结)

    Spring MVC 中使用session是一种常见的操作,但是大家上网搜索一下可以看到获取session的方式方法五花八门,最近,自己终结了一下,将获取session的方法记录下来,以便大家共同学习进步. 第一种:将HttpSession作为Spring MVC 的方法参数传入,直接获取. 直接在Spring MVC 的方法中将参数传入: public void getSessionAction(HttpSession session){ } 这种方法我再网上搜索时发现很多人并不推荐使用,但是

  • asp.net基于HashTable实现购物车的方法

    本文实例讲述了asp.net基于HashTable实现购物车的方法.分享给大家供大家参考,具体如下: //用户购买商品时 if (e.CommandName.ToLower() == "buy") { //判断用户购物车是否为空 如果为空则分配一个 Hashtable table; if (Session["car"] == null) { table = new Hashtable(); } else { //用户购物车己存在 则取出数据 table = Sess

  • thinkPHP多域名情况下使用memcache方式共享session数据的实现方法

    本文实例讲述了thinkPHP多域名情况下使用memcache方式共享session数据的实现方法.分享给大家供大家参考,具体如下: 一.问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名.密码在整个网站的各个模块中都是可以登录使用的.各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接口对用户数据进行访问即可.但还存在一个问题,就是用户在这个服务器登录之

  • YII Framework框架教程之国际化实现方法

    本文讲述了YII Framework框架教程之国际化实现方法.分享给大家供大家参考,具体如下: 一个web应用,发布到互联网,就是面向全球用户.用户在世界的各个角落都可以访问到你的web应用,当然要看你的网站和不和谐,不和谐的web应用在和谐社会是不让你访问的. YII提供了国际化的支持,可以让我们创建的应用适合不同语言的人群. 国际化是一个很花哨的东西,没有哪个大型的网站真正能做到国际化.大多都是针对不懂的语言,不同地区设计不同的网站.如果你的应用相对较小,处理的东西不多,那么国际化起来的东西

  • PHP基于session.upload_progress 实现文件上传进度显示功能详解

    本文实例讲述了PHP基于session.upload_progress 实现文件上传进度显示功能.分享给大家供大家参考,具体如下: 介绍 session.upload_progress 是PHP5.4的新特征. 当 session.upload_progress.enabled INI 选项开启时,PHP 能够在每一个文件上传时监测上传进度. 这个信息对上传请求自身并没有什么帮助,但在文件上传时应用可以发送一个POST请求到终端(例如通过XHR)来检查这个状态. 当一个上传在处理中,同时POST

随机推荐