思路:
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" %>
<%
String lang = (String)application.getAttribute("lang");
if (lang == null)
{
lang = "zh_CN";
}
session.setAttribute("language", lang);
%>
"/>
//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">
//error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
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" %>
Welcome , you login successfull