关于使用验证的问题 客户端校验用javascript 有个很简单的框架jquery如果是struts2,服务端校验就用validate拦截器,或者校验框架 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 做过struts1.*的验证,即在actionForm里面写actionErrors,之后配置properties文件即可相关代码: ActionErrors errors=new ActionErrors(); errors.add("error_key",new ActionError("配置文件中的相应的值")) javascript的校验,随便找本javascript的书服务端的校验,struts1或者struts2的书,随便一本里面都有 客户端验证用js,服务端验证用ajax实现啊,struts2得话,里面已经有验证方式 我主要是用js、struts的validator验证,其实后者实质用的就是js,你可以去网上找找js方面的资料学习,很多的,相信会有帮助。 struts验证详解Struts的出现就是为了全面消除服务器断程序的脚本嵌套,全面分层,通常我们的表单在提交时都需要进行数据验证,而这在以前通常是用客户端的javascript进行过滤后再由服务器端的脚本进行验证,这样的缺点是移植性很差,每次都需要重新编写源程序,而struts框架则提供了一个很好的验证机制,它不需要再编写脚本,而是通过验证器进行验证. struts验证又分为2种,一种是在ActionForm bean表单属性JavaBean的validate()方法中定义,在服务器断验证;另外一种则是通过验证器分别在客户端和服务器端进行双层验证. 1.在ActionForm Bean中验证: 首先需要介绍Struts的工作原理: (1).用户从表单提交数据,JSF表现为:<html:form action="/login">,普通JSP表现为:<form action="/login.do"> (2),程序将通过Struts配置文件(既ActionServlet)struts-config.xml的<action>节点下的path属性的值与form的action属性值进行匹配,如果配上了,程序将通过本action的name属性所对应的值与<form-bean>节点的name进行匹配,如果成功,则通过<form-bean>的type属性值找到ActionForm bean的类文件. (3)如果action中的validate属性设置为true或yes的话,程序将调用ActionForm bean的public ActionErrors validate(ActionMapping mapp,HttpServletRequest req)方法进行验证,结果返回一个ActionErrors类型以便我们将其catch住. (4)程序将ActionForm的各个属性做为参数传回给Action,Action再调用具体业务处理的JavaBean进行商业活动,再将程序转向View层的显示页面 具体方法:1.创建表单login.jsp <%@taglig uri="http://jakarta.apache/struts-bean" prefix="bean"%><%@taglib uri=http://jakarta.apache/struts-html prefix="html" %><html:html><body><!--捕获验证信息--><html:errors name="loginName"/> <html:form action="/login"> userName:<html:text property="userName"/> passWord:<html:password property="passWord" redisplay="false"/> <html:submit/><html:reset/></html:form><body></html:html> 建立ActionForm类 loginForm.javapackage com.liuhao.struts;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionError;import javax.servlet.http.HttpServletRequest;public class loginForm extends ActionForm{//定义属性,和表单里一致private String userName,passWord; public ActionForm(){ super();} //数据验证方法public ActionErrors validate(ActionMapping mapp,HttpServletRequest req){ ActionErrors errors=new ActionErrors(); if(this.userName==null || this.passWord==null) errors.add("loginName",new ActionError("errors.required","userName and passWord fie)); return errors;}public void reset(ActionMapping mapp,HttpServletRequest req){ this.userName=""; this.passWord="";}//定义相关属性的 getter和setterpublic void setUserName(String userName){this.userName=userName;}public void setPassWord(String passWord){this.passWord=passWord;}public String getUserName(){return this.userName;}public String getPassWord(){return this.passWord;} } 3.定义Action类 loginAction.javapackage com.liuhao.struts;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionForward;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class loginAction extends Action{ public loginAction(){super():}public ActionForward execute(ActionMapping mapp,ActionForm form,HttpServletRequest req,HttpServletResponse res)throws Exception{ org.com.liuhao.struts.loginForm Form=(loginForm)form; //将form对象实例写入当前请求中 req.setAttribute("form",Form); //转向输出页面 return mapp.findForward("sucess");} } 3.编写输出文件out.jsp<%@taglib uri="/WEB-INF/struts-beans.tld" prefix="bean"%><%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" %><%@page import="com.liuhao.struts.loginForm" %><% loginForm form=(loginForm)request.getAttribute("form"); out.println("your name is "+form.getUserName()); out.println("your password is "+form.getPassWord());%>4.配置文件:struts-config.xml在<form-beans>中定义formbean<form-bean name="loginForm" type="com.liuhao.struts.loginForm"> <form-property name="userName" type="java.lang.String"/> <form-property name="passWord" type="java.lang.String"/> </form-bean>在<action-mapping>中定义action<action name="loginForm" path="/login" type="com.liuhao.struts.loginAction" input="/index.jsp" validate="true"><forward name="sucess" path="/out.jsp"/></action> 5。在application resource中定义:error.requires={0} is not allowed null6.即可测试程序:"如果没有输入任何信息,login.jsp会输出:username and passWord field is not allowed null注解: 这样的方式优点是:彻底了消除了脚本的存在,是程序得到了很好的分层,但是却也寸在着移植性差的问题,因为每修改一次严整程序,都需要到loginForm中去修改validate方法.////********************2.在验证器中验证: (1).修改login.jsp的<html:form>为 :<html:form action="/login" onsubmit="return vaidateLoginForm(this)"/> 在程序中加入:<html:javascript formname="loginForm"/>用与生成客户端javascript代码 (2)编辑 validation.xml文件完成对验证器的部署,struts提供众多验证器,如Required Validator,Mask Validator等,其中Required Validator为验证程序是否为空的验证器,也是本例中使用的验证器。 在 <form-validation>节点中加入:<formset> <form name="loginForm"> <!--隐射到loginForm--> <field property="userName" depends="required"> <msg key="errors.required"/> <arg0 key="errors.user"/> </field> <field property="passWord" depends="required"> <msg key="errors.required"/> <arg0 key="errors.pass"/> </field> </form></formset>在定义完验证器后,就可以运行程序了,如果没有任何输入,将弹出窗口将错误信息显示出来(运用javascript的alert()方法表现); 删除购物车一项商品 SSH项目导包的问题 求解 心里的矛盾 Oracle中hibernate一对多主键序列问题????急! 求广州科诺面试题目 JNDI获得数据源 求助:找不到jndi,高手救命 欢迎大家加 QQ群13444949 jbuilder下如何生成安装程序,或者直接执行的程序啊? j2ee里有个CMP,是什么东东?能否解释一下 JSP错误 EJB超简单问题!
相关代码: ActionErrors errors=new ActionErrors();
errors.add("error_key",new ActionError("配置文件中的相应的值"))
服务端的校验,struts1或者struts2的书,随便一本里面都有
客户端验证用js,服务端验证用ajax实现啊,struts2得话,里面已经有验证方式
1.创建表单login.jsp
<%@taglig uri="http://jakarta.apache/struts-bean" prefix="bean"%><%@taglib uri=http://jakarta.apache/struts-html prefix="html" %><html:html><body><!--捕获验证信息--><html:errors name="loginName"/> <html:form action="/login"> userName:<html:text property="userName"/> passWord:<html:password property="passWord" redisplay="false"/> <html:submit/><html:reset/></html:form><body></html:html>
3.定义Action类 loginAction.javapackage com.liuhao.struts;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionForward;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class loginAction extends Action{ public loginAction(){super():}public ActionForward execute(ActionMapping mapp,ActionForm form,HttpServletRequest req,HttpServletResponse res)throws Exception{ org.com.liuhao.struts.loginForm Form=(loginForm)form; //将form对象实例写入当前请求中 req.setAttribute("form",Form); //转向输出页面 return mapp.findForward("sucess");} } 3.编写输出文件out.jsp
<%@taglib uri="/WEB-INF/struts-beans.tld" prefix="bean"%><%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" %><%@page import="com.liuhao.struts.loginForm" %><% loginForm form=(loginForm)request.getAttribute("form"); out.println("your name is "+form.getUserName()); out.println("your password is "+form.getPassWord());%>4.配置文件:struts-config.xml
在<form-beans>中定义formbean<form-bean name="loginForm" type="com.liuhao.struts.loginForm"> <form-property name="userName" type="java.lang.String"/> <form-property name="passWord" type="java.lang.String"/> </form-bean>在<action-mapping>中定义action<action name="loginForm" path="/login" type="com.liuhao.struts.loginAction" input="/index.jsp" validate="true"><forward name="sucess" path="/out.jsp"/></action>
<formset> <form name="loginForm"> <!--隐射到loginForm--> <field property="userName" depends="required"> <msg key="errors.required"/> <arg0 key="errors.user"/> </field> <field property="passWord" depends="required"> <msg key="errors.required"/> <arg0 key="errors.pass"/> </field> </form></formset>在定义完验证器后,就可以运行程序了,如果没有任何输入,将弹出窗口将错误信息显示出来(运用javascript的alert()方法表现);