strutrs1的validator框架的在form中开展国际化验证,而且实现传递参数的国际化
//jsp页面
<html:form action="/go?p=regist">
password : <html:password property="password"/><html:errors property="password"/><br/>
name : <html:text property="name"/><html:errors property="userNameError"/><br/>
<html:submit/><html:cancel/>
</html:form>
//form的代码
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.forms;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.Globals;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.util.MessageResources;
import org.apache.struts.util.RequestUtils;
public class UserForm extends ActionForm {
private String password;
private String name;
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors actionErrors = new ActionErrors();
//这是资源文件的类
MessageResources messageResources = (MessageResources) request.getAttribute(Globals.MESSAGES_KEY);
//这是得到当前的语言环境
Locale locale = RequestUtils.getUserLocale(request, null);
if(name == null || "".equals(name.trim()))
{
//这是得到资源文件key为userNameError的国际化信息,第二个参数,当我们的第一个参数代表的国际化资源信息里面{0}这种形式的时候,去填充这个占位符
ActionMessage actionMessage = new ActionMessage("userNameError", messageResources.getMessage(locale, "info.name"));
actionErrors.add("userNameError", actionMessage);
}
return actionErrors;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="userForm" type="com.forms.UserForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action
attribute="userForm"
input="/regist.jsp"
name="userForm"
parameter="p"
path="/go"
scope="request"
type="com.actions.UserAction" validate="true">
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>