设为首页 加入收藏

TOP

动态切换Struts2的国际化(一)
2014-11-24 14:30:33 来源: 作者: 【 】 浏览:0
Tags:动态 切换 Struts2 国际化

思路:


1.在struts.xml中配置好默认的语言:



2.在jsp页面中,设置一些链接(),这些链接是Action类,然后通过这些链接,在Action中设置好相应的参数, 并将它保存在application对象中。


3.在跳转后的jsp页面中,通过获取application对象的相应的属性的值,以后在相应的表单中通过设置隐藏属性,这样子在以后的跳转页面都会显示相应的语言了。


4.具体的代码如下:


< xml version="1.0" encoding="UTF-8" >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>




Login


<%
String lang = (String)application.getAttribute("lang");
if (lang == null)
{
lang = "zh_CN";
}
session.setAttribute("language", lang);
%>













"/>








Login


















zh_CN

中文


en_US

英文


//User Model


package yang.www;

public class UserBean
{
private String userName;
private String passWord;


public UserBean(){}



public String getUserName() {
return userName;
}
public String getPassWord() {
return passWord;
}


public void setUserName(String userName) {
this.userName = userName;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}




//进行语言的设置:


package yang.www;

import java.util.Locale;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class ChangeLang extends ActionSupport
{
/**
*
*/
private static final long serialVersionUID = 1L;
private String language;

public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String execute()
{
String[] strings = this.getLanguage().split("_");
Locale locale = new Locale(strings[0], strings[1]);
ServletActionContext.getContext().setLocale(locale);
ActionContext.getContext().getApplication().put("lang", this.getLanguage());
return SUCCESS;
}
}


//Login Action


package yang.www;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class Login extends ActionSupport implements ModelDriven
{
/**
*
*/
private static final long serialVersionUID = 1L;
private UserBean user = new UserBean();
@Override
public UserBean getModel() {
// TODO Auto-generated method stub
return user;
}

ActionContext context = ActionContext.getContext();
public String execute()
{
boolean rightUser = "yangzhiyong".equals( this.getModel().getUserName() );
boolean rightPassWord = "yangzhiyong".equals(this.getModel().getPassWord());
if ( rightUser && rightPassWord )
{
context.getSession().put("username", this.getModel().getUserName());
return SUCCESS;
}
else
{
return ERROR;
}
}

public void validate()
{
if (this.getModel().getUserName().length() < 6 )
{
this.addFieldError("userName", this.getText("label_userError"));
}
if (this.getModel().getPassWord().length() < 5)
{
this.addFieldError("passWord", this.getText("label_passwordError"));
}
}
}




struts.xml:


< xml version="1.0" encoding="UTF-8" >
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">











/jsp/welcome.jsp
/jsp/error.jsp
/index.jsp


/index.jsp








//error.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>




Login Error


Sorry login failed!








//welcome.jsp


< xml version="1.0" encoding="UTF-8" >
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>




Login Success!



Welcome , you login successfull

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Struts2中标签问题 下一篇使用Struts2上传文件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: