validator 框架问题100分

ynliugang 2007-03-02 09:36:45
环境是tomcat5.028,struts1.2.9,
validator 框架配置好后,运行书中实例时,没有出错信息,运行流畅,但是好象根本就没有对表单进行验证,不知道哪里有问题,望高手指点.
...全文
482 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeah920 2007-03-13
  • 打赏
  • 举报
回复
帮忙顶,楼上都说了
For_suzhen 2007-03-13
  • 打赏
  • 举报
回复
学习一下....
jicken_woo 2007-03-13
  • 打赏
  • 举报
回复
学习一下....
xunyiren 2007-03-12
  • 打赏
  • 举报
回复
struts-config.xml中:

input="/ee.jsp"改成input="/user.jsp"
mliwng 2007-03-11
  • 打赏
  • 举报
回复
CheckForm 中重写validate()方法
public ActionErrors validate(ActionMapping mapping HttpServletRequest request)
{
return super(mapping,request);
}
lt2046 2007-03-11
  • 打赏
  • 举报
回复
动态验证 在jsp页
要添加<html:javascript formName="bean的name例 loginForm" />

form中 <html:form action="/login" onsubmit="return validateLoginForm(this)">
ziyouzai 2007-03-10
  • 打赏
  • 举报
回复
是你的password设置了minlength验证
我刚发现这个问题。
还不知道如何解决。
snruge123 2007-03-10
  • 打赏
  • 举报
回复
其他我没看哈,不过你想使用这个框架如果是后台验证的话就得加validate="true"
但是你如果是想进行页面间的验证的话,页面就少了一句话哈...得加上,找个例子看看,这个基本都是死的
tcmis 2007-03-10
  • 打赏
  • 举报
回复
添加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>

WUHUAYONG 2007-03-10
  • 打赏
  • 举报
回复
这些校验都可以用js实现,方便又快,我们现在做项目时这个方法都不用了.
ynliugang 2007-03-02
  • 打赏
  • 举报
回复
请各位高手帮忙给看看,先谢了!
ynliugang 2007-03-02
  • 打赏
  • 举报
回复
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.xsl

package 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
82年的程序狗 2007-03-02
  • 打赏
  • 举报
回复
现在做验证还用这个框架吗?
我好像觉得直接写JS脚本会更容易些
ynliugang 2007-03-02
  • 打赏
  • 举报
回复
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>

ynliugang 2007-03-02
  • 打赏
  • 举报
回复
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>
Rick_ang 2007-03-02
  • 打赏
  • 举报
回复
你都没说哪本书
Rick_ang 2007-03-02
  • 打赏
  • 举报
回复
Validator框架要配置validator-rules.xml,配置好了么?
还要在对应得Action配置文件中加入validate="true"
还需要有input属性
最后,你得form输入真得有错么?
都不能解决就把代码贴出来吧

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧