很不好意思,本人搞了很长时间validator框架,但是,validator框架就是不好用。
在网上找了几个例子,自己也作了个简单的服务器端验证的例子。就是提交一个文本框到下个页面,如果这个文本框为空就崩错,返回到本页。
<action path="/CustRegistAction"
name="CustRegistForm"
type="navi_3g.action.CustRegistAction"
validate="true"
scope="request"
input="/view/jsp/custregist.jsp">
<forward name="Ok" path="/view/jsp/helloresult.jsp"/>
</action> <!-- An example form -->
<form name="/CustRegistAction">
<field property="txtCellNumber" depends="required,mask">
<arg key="CustRegistForm.txtCellNumber"/>
<var><var-name>mask</var-name>
<var-value>^[0-9a-zA-Z]*$</var-value>
</var>
</field>
</form> <validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>
在网上找了几个例子,自己也作了个简单的服务器端验证的例子。就是提交一个文本框到下个页面,如果这个文本框为空就崩错,返回到本页。
<action path="/CustRegistAction"
name="CustRegistForm"
type="navi_3g.action.CustRegistAction"
validate="true"
scope="request"
input="/view/jsp/custregist.jsp">
<forward name="Ok" path="/view/jsp/helloresult.jsp"/>
</action> <!-- An example form -->
<form name="/CustRegistAction">
<field property="txtCellNumber" depends="required,mask">
<arg key="CustRegistForm.txtCellNumber"/>
<var><var-name>mask</var-name>
<var-value>^[0-9a-zA-Z]*$</var-value>
</var>
</field>
</form> <validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/>
解决方案 »
- java出来做网站好吗?div+css很重要么?
- 大虾帮忙啊,急救~~!
- 怎样制作一个jsp论坛?
- 新人求助
- 数据库结果集用JSTL在JSP页面循环出来麻烦指教!
- 请教一个中文字符集的问题,急!
- 菜鸟问题:“public PageBean() {}”在这里起什么作用?
- 我的JSP页面需要不断刷新,但我希望按“后退“按钮返回到上一个页面,却发觉由于先按了几次刷新,当我按”后退“时,页面还是停留在当前
- 服务器端页面重定位!——页面提交到外部系统,返回的页面是外部系统确定的。
- 请问,getAttribute 怎么用?在线等待
- JSP提交到Servlet出现405错误
- MyEclipse发布时包的问题
最好给一个完整的例子!感激不尽!
1. <s:form validate=“true“></s:form>中添加validate=“true"
2. 要输入的数据全部用<s:textfield>之类的strust2标签
3.验证文件必须为 实体类名-要验证的action名-validation.xml 如:UserAction-create-validation.xml , create必须在struts.xml中的action中配置
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validator.xml" />
</plug-in>2.actionForm要至少继承ValidatorForm
3.在action中validate属性要设置成true
4.在validator.xml配置文件中配置name=CustRegistForm的属性要和页面的属性对应起来。
你要是想研究验证的话,可以去你下的struts的包中找下例子,里面有例子的
下面是validator例子
http://blog.csdn.net/yefengmeander/archive/2009/01/12/3761767.aspx
public class CustRegistAction extends Action{ @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
CustRegistForm custregistform=(CustRegistForm)form;
//ActionErrors errors=custregistform.validate(mapping, request);
if (?????)){
request.setAttribute("cellnumber",custregistform.getTxtCellNumber());
return mapping.findForward("Ok");
}
else{
return mapping.findForward("failure");
}
}
}请高手看一下!
public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {
ActionErrors errors = new ActionErrors();
if (username == null || username.equals("")) {
errors.add("username", new ActionMessage(
"login.error.username"));
}
if (password == null
|| password.equals("")) {
errors.add("password", new ActionMessage(
"login.error.password"));
}
arg1.setAttribute("loginFormBean", this);
return errors;
}