思路:
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); %>
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