来看Struts2教程4:利用validate办法考证数据
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......在Struts2中最复杂的考证数据的办法是利用validate。我们从ActionSupport类的源代码中能够看到,ActionSupport类完成了一个Validateable接口。这个接口只要一个validate办法。假如Action类完成了这个接口,Struts2在挪用execute办法之前起首会挪用这个办法,我们能够在validate办法中考证,假如产生毛病,能够依据毛病的level选择字段级毛病,仍是举措级毛病。而且可以使用addFieldError或addActionError到场响应的毛病信息,假如存在Action或Field毛病,Struts2会前往“input”(这个其实不用开辟职员写,由Struts2主动前往),假如前往了“input”,Struts2就不会再挪用execute办法了。假如不存在毛病信息,Struts2在最初会挪用execute办法。
这两个add办法和ActionErrors类中的add办法相似,只是add办法的毛病信息必要一个ActionMessage对象,对照贫苦。除到场毛病信息外,还可使用addActionMessage办法到场乐成提交后的信息。当提交乐成后,能够显现这些信息。
以上三个add办法都在ValidationAware接口中界说,而且在ActionSupport类中有一个默许的完成。实在,在ActionSupport类中的完成实践上是挪用了ValidationAwareSupport中的响应的办法,也就是这三个add办法是在ValidationAwareSupport类中完成的,代码以下:
privatefinalValidationAwareSupportvalidationAware=newValidationAwareSupport();
publicvoidaddActionError(StringanErrorMessage)
{validationAware.addActionError(anErrorMessage);
}
publicvoidaddActionMessage(StringaMessage)
{
validationAware.addActionMessage(aMessage);
}
publicvoidaddFieldError(StringfieldName,StringerrorMessage)
{
validationAware.addFieldError(fieldName,errorMessage);
}上面我们来完成一个复杂的考证程序,来体验一个validate办法的利用。
先来在Web根目次创建一个主页面(validate.jsp),代码以下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%>
<%@taglibprefix="s"uri="/struts-tags"%>
<html>
<head>
<title>考证数据</title>
</head>
<body>
<s:actionerror/>
<s:actionmessage/>
<s:formaction="validate.action"theme="simple">
输出内容:<s:textfieldname="msg"/>
<s:fielderrorkey="msg.hello"/>
<br/>
<s:submit/>
</s:form>
</body>
</html><p>
java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
页:
[1]