这是需要的registerjsp页面(viewer) 注意到里面的包含taglib的方法。表单的onsubmit="return validate();"
这是局部类型转换器文件(RegisterAtion-conversion.properties)的的代码
全局类型转换器文件(xwork-conversion.properties)里面的key-value
struts框架拦截器拦截的类型转换失败的出错信息(RegiterAction.properties)
PointConverter.java extends StrutsTypeConverter
struts2校验框架的字段校验和非字段校验
类型转换应该是应用在表单提交的时候一些比较特殊的类型转换的时候的
toType
1、string
if(Point.class == toType) // 从客户端到服务端
{
String[] str = (String[])value;
}
getParameter(String name);
getParameterValues(String name);
// 局部变量的配置方法。。
XXXAcion-conversion.properties
key - value
converter
Unable to load configuration. - action - file:/D:/installPackage/Java/Tomcat%206.0/webapps/struts2/WEB-INF/classes/struts.xml:16:43
struts.xml文件配置错误
key -> value
被转换的类型(class) -> 用来转换该类型的Converter
xwork-conversion.properties
错误:form中的名字和Acion中的名字不匹配导致找不到,就找不到Converter了!
为了代替strtus默认给出的 FieldError信息 可以在struts.xml添加:
定义了一个国际化资源文件...
<constant name="struts.custom.i18n.resources" value="message"></constant>
// 全局的
<constant name="struts.custom.i18n.resources" value="message">
xwork.default.invalid.fieldvalue={0} error
// 局部的怎么做?(注意是类型转换错误...)
invalid.fieldvalue.age="age conversion error"
名称 局部 全局
类型转换的命名方式: XXXAcion-conversion.properties xwork-conversion.properties
硬编码校验方式: XXXAction.properties XXXX.properities
类型转换->输入校验->excute
就算类型转换失败也会进行输入校验.
硬编码校验的时候 先找局部的,若有,则不再找全局的。若没有,再找局部的。
错误:
Action的名字与资源文件的名字不同导致错误...
两种错误消息的区别。
FieldError:
AcionError:
为了不使用strtus提供的错误消息,所以可以使用theme="simple" 来消除。。。
如果一个Actioon里面有validate则一定会被执行
public String abc() throws Exception
public void validateaAbc(){
}
常用用的。。。
org.apache.struts2.static default.properties
struts2-core-2.1.8.1->struts-default.xml
com.opensymphony.xwork2.validator.validators->default.xml
Struts2同样支持客户端验证
1、form不能是simple 可以直接使用默认的
2、validate="true"
3、客户端验证时根据XXXAction-validatoin.xml来生成的。
4、最好不要使用struts2给我们提供的客户端校验
XXXAction-validation.xml first 仅当只有一个method的时候才使用,否则不提倡。
XXXAction-methodName-validation.xml then and must 提倡使用该校验方法。
子类的怎么办呢?
ParentAcion
{
test();
}
ParentAcion-validation.xml
ParentAcion-test-validation.xml
ChildAcion extends ParentAction
{
test();
}
ChildAction-validation.xml
ChildAcion-test-validation.xml