struts2国际化配置(+页面下拉修改)
可以用struts.xml或struts.properties可用于覆盖default.properties的属性配置;
如:
default.properties
### Load custom default resource bundles# struts.custom.i18n.resources=testmessages,testmessages2### workaround for some app servers that don't handle HttpServletRequest.getParameterMap()### often used for WebLogic, Orion, and OC4Jstruts.dispatcher.parametersWorkaround = false
1. <constant name="struts.custom.i18n.resources" value="messageResources"></constant>
struts.custom.i18n.resources=messageResources
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" ><!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><script type="text/javascript">function changeLoc(){var s = document.getElementById("loc").value;window.location.href = "hello.action?loc="+s;}</script></head><body><s:select id="loc" name="loc" onchange="changeLoc()" list='#{"zh_CN":"中文","en_US":"英文"}'></s:select><hr><s:text name="msg.hell"></s:text><br><s:textfield key="user" name="name"></s:textfield><s:fielderror></s:fielderror></body></html>
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"><struts><package name="myfirst1" extends="struts-default"><action name="regist" method="{1}"><result name="success">/ok.html</result><result name="input">/regist.jsp</result></action> --><action name="hello" name="code">package tarena.actions;import java.util.Locale;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class HelloAction extends ActionSupport{private String loc;public void validate(){System.out.println(loc);String[] code = loc.split("_");Locale locale = new Locale(code[0],code[1]);ActionContext.getContext().setLocale(locale);this.addFieldError("msg",this.getText("msg.error"));}public String execute(){System.out.println(loc);String[] code = loc.split("_");Locale locale = new Locale(code[0],code[1]);ActionContext.getContext().setLocale(locale);return "success";}public String getLoc() {return loc;}public void setLoc(String loc) {this.loc = loc;}}