xml校验文件貌似已经执行了,但是不符合输入要求,却还是执行了execute方法,却没返回到input,高手求救~
校验框架LoginAction-validation.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定校验规则文件的DTD信息 --><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"><!-- 校验规则定义文件的根元素 -->
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message >用户名必须存在</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message >usename should be between ${minLength} and ${maxLength}</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message >password is invalid</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message >password should be between ${minLength} and ${maxLength}</message>
</field-validator>
</field>
<field name="property">
<field-validator type="requiredstring">
<message >property is invalid</message>
</field-validator>
</field>
</validators> Action代码LoginAction:
package com.struts.action;public class LoginAction {
private String username;
private String password;
private String property;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public String execute()throws Exception
{
return "success";
}}
配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.custom.i18n.resources" value="message"></constant>
<constant name="struts.devMode" value="true"></constant>
<constant name="struts.i18n.encoding" value="GB2312"></constant>
<constant name="struts.multipart.saveDir" value="/tmp"></constant>
<package name="upload" extends="struts-default">
<action name="login" class="com.struts.action.LoginAction">
<result name="input">/index.jsp</result>
<result name="success">/view/home.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
控制台信息:
严重: Validation error for username:用户名必须存在
2009-4-9 22:03:31 com.opensymphony.xwork2.validator.DelegatingValidatorContext$LoggingValidationAware addFieldError
严重: Validation error for password:password is invalid
2009-4-9 22:03:31 com.opensymphony.xwork2.validator.DelegatingValidatorContext$LoggingValidationAware addFieldError
严重: Validation error for property:property is invalid
校验框架LoginAction-validation.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定校验规则文件的DTD信息 --><!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"><!-- 校验规则定义文件的根元素 -->
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message >用户名必须存在</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message >usename should be between ${minLength} and ${maxLength}</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message >password is invalid</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message >password should be between ${minLength} and ${maxLength}</message>
</field-validator>
</field>
<field name="property">
<field-validator type="requiredstring">
<message >property is invalid</message>
</field-validator>
</field>
</validators> Action代码LoginAction:
package com.struts.action;public class LoginAction {
private String username;
private String password;
private String property;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public String execute()throws Exception
{
return "success";
}}
配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.custom.i18n.resources" value="message"></constant>
<constant name="struts.devMode" value="true"></constant>
<constant name="struts.i18n.encoding" value="GB2312"></constant>
<constant name="struts.multipart.saveDir" value="/tmp"></constant>
<package name="upload" extends="struts-default">
<action name="login" class="com.struts.action.LoginAction">
<result name="input">/index.jsp</result>
<result name="success">/view/home.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
控制台信息:
严重: Validation error for username:用户名必须存在
2009-4-9 22:03:31 com.opensymphony.xwork2.validator.DelegatingValidatorContext$LoggingValidationAware addFieldError
严重: Validation error for password:password is invalid
2009-4-9 22:03:31 com.opensymphony.xwork2.validator.DelegatingValidatorContext$LoggingValidationAware addFieldError
严重: Validation error for property:property is invalid
<action name="login" class="com.struts.action.LoginAction">
<interceptor-ref name="defaultStack"> </interceptor-ref>
<result name="input">/index.jsp </result>
<result name="success">/view/home.jsp </result>
</action>
</package>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true </param>
<message >用户名必须存在 </message>
</field-validator>