validator 框架问题100分 Validator框架要配置validator-rules.xml,配置好了么?还要在对应得Action配置文件中加入validate="true"还需要有input属性最后,你得form输入真得有错么?都不能解决就把代码贴出来吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 user.jsp:<%@ page contentType="text/html; charset=UTF-8"%><%@ page language="java"%><%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <html> <head> <title>JSP for CheckForm form</title> </head> <body> <html:form action="SavaAction.do"> <bean:message key="userName"/> : <html:text property="userName"/><html:errors property="userName"/><br/> <bean:message key="passWord"/> : <html:password property="passWord"/><html:errors property="passWord"/><br/> <bean:message key="age"/> : <html:text property="age"/><html:errors property="age"/><br/> <bean:message key="email"/> : <html:text property="email"/><html:errors property="email"/><br/> <html:submit/><html:cancel/> </html:form> </body></html> struts-config.xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><struts-config> <data-sources /> <form-beans > <form-bean name="CheckForm" type="struts.sample.cap5.sample1.form.CheckForm" /> <form-bean name="CheckForm2" type="org.apache.struts.validator.DynaValidatorActionForm"> <form-property name="userName" type="java.lang.String" /> <form-property name="age" type="int" /> <form-property name="email" type="java.lang.String" /> <form-property name="passWord" type="java.lang.String" /> </form-bean> </form-beans> <global-exceptions /> <global-forwards /> <action-mappings > <action attribute="CheckForm" input="/ee.jsp" name="CheckForm" path="/SavaAction" scope="request" type="struts.sample.cap5.sample1.action.SaveAction" validate="true"> <forward name="success" path="/user.jsp" /> </action> </action-mappings> <message-resources parameter="resources.application" /> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> </plug-in></struts-config>validation.xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" "validator_1_0.dtd" ><form-validation> <global> <constant> <constant-name>numericchar</constant-name> <constant-value>^\w+$</constant-value> </constant> </global> <formset> <form name="CheckForm"> <field property="userName" depends="required,mask"> <arg0 key="userName" /> <var> <var-name>mask</var-name> <var-value>${numericchar}</var-value> </var> </field> <!-- <field property="passWord" depends="minlength,maxlength,required,mask">--> <field property="passWord" depends="required,mask,minmaxlength"> <arg0 key="passWord" ></arg0> <arg1 key="6" resource="false"></arg1> <arg2 key="12" resource="false"></arg2> <var> <var-name>mask</var-name> <var-value>${numericchar}</var-value> </var> <var> <var-name>maxlength</var-name> <var-value>12</var-value> </var> <var> <var-name>minlength</var-name> <var-value>6</var-value> </var> </field> <field property="age" depends="range"> <arg0 key="age" /> <arg1 key="18" resource="false" /> <arg2 key="30" resource="false" /> <var> <var-name>min</var-name> <var-value>18</var-value> </var> <var> <var-name>max</var-name> <var-value>30</var-value> </var> </field> <field property="email" depends="email"> <arg0 key="email"></arg0> </field> </form> </formset></form-validation> package struts.sample.cap5.sample1.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import struts.sample.cap5.sample1.form.CheckForm;public class SaveAction extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { CheckForm CheckForm = (CheckForm) form; // TODO Auto-generated method stub return mapping.findForward("success"); }}//Created by MyEclipse Struts// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.0/xslt/JavaClass.xslpackage struts.sample.cap5.sample1.form;import org.apache.struts.validator.ValidatorForm;/** * 继承于ValidatorForm * 不应该覆盖validate方法 */public class CheckForm extends ValidatorForm { private String userName; private int age; private String email; private String passWord; /** * Returns the userName. * * @return String */ public String getUserName() { return userName; } /** * Set the userName. * * @param userName * The userName to set */ public void setUserName(String userName) { this.userName = userName; } /** * Returns the age. * * @return int */ public int getAge() { return age; } /** * Set the age. * * @param age * The age to set */ public void setAge(int age) { this.age = age; } /** * Returns the email. * * @return String */ public String getEmail() { return email; } /** * Set the email. * * @param email * The email to set */ public void setEmail(String email) { this.email = email; } /** * Returns the passWord. * * @return String */ public String getPassWord() { return passWord; } /** * Set the passWord. * * @param passWord * The passWord to set */ public void setPassWord(String passWord) { this.passWord = passWord; }}#Created by JInto - www.guh-software.de#Thu Mar 30 00:45:48 CST 2006age=\u5E74\u9F84email=\u7535\u5B50\u90AE\u7BB1errors.email={0}\u4E0D\u662F\u6B63\u786E\u7684email\u5730\u5740errors.invalid={0}\u5305\u542B\u4E0D\u5408\u6CD5\u7684\u5B57\u7B26\u4E32errors.maxlength={0}\u5FC5\u987B\u5C0F\u4E8E12\u4F4D\u7684\u5B57\u7B26errors.minlength={0}\u5FC5\u987B\u5927\u4E8E6\u4F4D\u7684\u5B57\u7B26errors.minmaxlength={0}\u7684\u5B57\u7B26\u6570\u5FC5\u987B\u5927\u4E8E{1}\u5C0F\u4E8E{2}errors.range={0}\u5FC5\u987B\u5927\u4E8E{1}\u5C0F\u4E8E{2}errors.required={0}\u5FC5\u987B\u8F93\u5165passWord=\u5BC6\u7801userName=\u59D3\u540D 是你的password设置了minlength验证我刚发现这个问题。还不知道如何解决。 添加validator框架主要注意以下几个步骤: 一、检查是否有validator-rules.xml(这个直接拷贝就是,基本上不需要更改)、validation.xml(自己配置form需要验证的字段)两个文件,并将两个文件放到WEB-INF下面 二、在添加form时,Form Impl 选择的类型是Dynamic FormBean, Dynamic Type选择的是org.apache.struts.validator.DynaValidatorForm,如果你选择的是org.apache.struts.action.DynaActionForm则不能验证。(这点最重要,需要检查清楚) 三、在validation.xml文件配置验证选项.看了你的这个配置<form-bean name="CheckForm" type="struts.sample.cap5.sample1.form.CheckForm" />你这个地方的formbean type错了,还有,如果你的这个form没有一个字段,这也是错误的,你后面验证这个form的字段,字段都没有,怎么验证,搞不懂你。。在好好检查一下。<form name="CheckForm"><field property="userName" depends="required,mask"><arg0 key="userName" /><var><var-name>mask</var-name><var-value>${numericchar}</var-value></var></field> 其他我没看哈,不过你想使用这个框架如果是后台验证的话就得加validate="true"但是你如果是想进行页面间的验证的话,页面就少了一句话哈...得加上,找个例子看看,这个基本都是死的 动态验证 在jsp页要添加<html:javascript formName="bean的name例 loginForm" />form中 <html:form action="/login" onsubmit="return validateLoginForm(this)"> CheckForm 中重写validate()方法public ActionErrors validate(ActionMapping mapping HttpServletRequest request){ return super(mapping,request);} struts-config.xml中:input="/ee.jsp"改成input="/user.jsp" spring注入报空指针 jquery ie6 关于hibernate更新问题,急急急急急急! 关于java Socket通讯时的问题,帮忙解答一下,谢谢! ssh添加事务启动时报错 一些方法,我希望不对外发布 高手们能给我解释下oop吗? 在此先谢过了 Bean class出错!求救! 求教关于struts的html tag的使用问题 可以运行的sql语句,用JDBC运行报错, 请问一个熟悉Spring的人士可以从事哪些工作,请多多指教! 一个简单问题,关于变量存储在哪?
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page language="java"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<html>
<head>
<title>JSP for CheckForm form</title>
</head>
<body>
<html:form action="SavaAction.do">
<bean:message key="userName"/> : <html:text property="userName"/><html:errors property="userName"/><br/>
<bean:message key="passWord"/> : <html:password property="passWord"/><html:errors property="passWord"/><br/>
<bean:message key="age"/> : <html:text property="age"/><html:errors property="age"/><br/>
<bean:message key="email"/> : <html:text property="email"/><html:errors property="email"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><struts-config>
<data-sources />
<form-beans >
<form-bean name="CheckForm" type="struts.sample.cap5.sample1.form.CheckForm" />
<form-bean name="CheckForm2" type="org.apache.struts.validator.DynaValidatorActionForm">
<form-property name="userName" type="java.lang.String" />
<form-property name="age" type="int" />
<form-property name="email" type="java.lang.String" />
<form-property name="passWord" type="java.lang.String" />
</form-bean> </form-beans> <global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="CheckForm"
input="/ee.jsp"
name="CheckForm"
path="/SavaAction"
scope="request"
type="struts.sample.cap5.sample1.action.SaveAction"
validate="true">
<forward name="success" path="/user.jsp" />
</action>
</action-mappings> <message-resources parameter="resources.application" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
</struts-config>validation.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" "validator_1_0.dtd" >
<form-validation>
<global>
<constant>
<constant-name>numericchar</constant-name>
<constant-value>^\w+$</constant-value>
</constant>
</global> <formset>
<form name="CheckForm">
<field property="userName" depends="required,mask">
<arg0 key="userName" />
<var>
<var-name>mask</var-name>
<var-value>${numericchar}</var-value>
</var>
</field>
<!-- <field property="passWord" depends="minlength,maxlength,required,mask">-->
<field property="passWord" depends="required,mask,minmaxlength">
<arg0 key="passWord" ></arg0>
<arg1 key="6" resource="false"></arg1>
<arg2 key="12" resource="false"></arg2>
<var>
<var-name>mask</var-name>
<var-value>${numericchar}</var-value>
</var>
<var>
<var-name>maxlength</var-name>
<var-value>12</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</var>
</field>
<field property="age" depends="range">
<arg0 key="age" />
<arg1 key="18" resource="false" />
<arg2 key="30" resource="false" />
<var>
<var-name>min</var-name>
<var-value>18</var-value>
</var>
<var>
<var-name>max</var-name>
<var-value>30</var-value>
</var>
</field>
<field property="email" depends="email">
<arg0 key="email"></arg0>
</field>
</form>
</formset>
</form-validation>
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import struts.sample.cap5.sample1.form.CheckForm;public class SaveAction extends Action { public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
CheckForm CheckForm = (CheckForm) form;
// TODO Auto-generated method stub
return mapping.findForward("success");
}}
//Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.0/xslt/JavaClass.xslpackage struts.sample.cap5.sample1.form;import org.apache.struts.validator.ValidatorForm;/**
* 继承于ValidatorForm
* 不应该覆盖validate方法
*/
public class CheckForm extends ValidatorForm {
private String userName;
private int age;
private String email;
private String passWord; /**
* Returns the userName.
*
* @return String
*/
public String getUserName() {
return userName;
} /**
* Set the userName.
*
* @param userName
* The userName to set
*/
public void setUserName(String userName) {
this.userName = userName;
} /**
* Returns the age.
*
* @return int
*/
public int getAge() {
return age;
} /**
* Set the age.
*
* @param age
* The age to set
*/
public void setAge(int age) {
this.age = age;
} /**
* Returns the email.
*
* @return String
*/
public String getEmail() {
return email;
} /**
* Set the email.
*
* @param email
* The email to set
*/
public void setEmail(String email) {
this.email = email;
} /**
* Returns the passWord.
*
* @return String
*/
public String getPassWord() {
return passWord;
} /**
* Set the passWord.
*
* @param passWord
* The passWord to set
*/
public void setPassWord(String passWord) {
this.passWord = passWord;
}}
#Created by JInto - www.guh-software.de
#Thu Mar 30 00:45:48 CST 2006
age=\u5E74\u9F84
email=\u7535\u5B50\u90AE\u7BB1
errors.email={0}\u4E0D\u662F\u6B63\u786E\u7684email\u5730\u5740
errors.invalid={0}\u5305\u542B\u4E0D\u5408\u6CD5\u7684\u5B57\u7B26\u4E32
errors.maxlength={0}\u5FC5\u987B\u5C0F\u4E8E12\u4F4D\u7684\u5B57\u7B26
errors.minlength={0}\u5FC5\u987B\u5927\u4E8E6\u4F4D\u7684\u5B57\u7B26
errors.minmaxlength={0}\u7684\u5B57\u7B26\u6570\u5FC5\u987B\u5927\u4E8E{1}\u5C0F\u4E8E{2}
errors.range={0}\u5FC5\u987B\u5927\u4E8E{1}\u5C0F\u4E8E{2}
errors.required={0}\u5FC5\u987B\u8F93\u5165
passWord=\u5BC6\u7801
userName=\u59D3\u540D
我刚发现这个问题。
还不知道如何解决。
一、检查是否有validator-rules.xml(这个直接拷贝就是,基本上不需要更改)、validation.xml(自己配置form需要验证的字段)两个文件,并将两个文件放到WEB-INF下面
二、在添加form时,Form Impl 选择的类型是Dynamic FormBean, Dynamic Type选择的是org.apache.struts.validator.DynaValidatorForm,如果你选择的是org.apache.struts.action.DynaActionForm则不能验证。(这点最重要,需要检查清楚)
三、在validation.xml文件配置验证选项.看了你的这个配置
<form-bean name="CheckForm" type="struts.sample.cap5.sample1.form.CheckForm" />
你这个地方的formbean type错了,还有,如果你的这个form没有一个字段,这也是错误的,你后面验证这个form的字段,字段都没有,怎么验证,搞不懂你。。在好好检查一下。
<form name="CheckForm">
<field property="userName" depends="required,mask">
<arg0 key="userName" />
<var>
<var-name>mask</var-name>
<var-value>${numericchar}</var-value>
</var>
</field>
但是你如果是想进行页面间的验证的话,页面就少了一句话哈...得加上,找个例子看看,这个基本都是死的
要添加<html:javascript formName="bean的name例 loginForm" />form中 <html:form action="/login" onsubmit="return validateLoginForm(this)">
public ActionErrors validate(ActionMapping mapping HttpServletRequest request)
{
return super(mapping,request);
}