仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 410|回复: 7
打印 上一主题 下一主题

[学习教程] 来看Struts2教程4:利用validate办法考证数据

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:08:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......
在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类中完成的,代码以下:
  1. privatefinalValidationAwareSupportvalidationAware=newValidationAwareSupport();
  2. publicvoidaddActionError(StringanErrorMessage)
  3. {validationAware.addActionError(anErrorMessage);
  4. }
  5. publicvoidaddActionMessage(StringaMessage)
  6. {
  7. validationAware.addActionMessage(aMessage);
  8. }
  9. publicvoidaddFieldError(StringfieldName,StringerrorMessage)
  10. {
  11. validationAware.addFieldError(fieldName,errorMessage);
  12. }
复制代码
上面我们来完成一个复杂的考证程序,来体验一个validate办法的利用。
先来在Web根目次创建一个主页面(validate.jsp),代码以下:
  1. <%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%>
  2. <%@taglibprefix="s"uri="/struts-tags"%>
  3. <html>
  4. <head>
  5. <title>考证数据</title>
  6. </head>
  7. <body>
  8. <s:actionerror/>
  9. <s:actionmessage/>
  10. <s:formaction="validate.action"theme="simple">
  11. 输出内容:<s:textfieldname="msg"/>
  12. <s:fielderrorkey="msg.hello"/>
  13. <br/>
  14. <s:submit/>
  15. </s:form>
  16. </body>
  17. </html>
复制代码
<p>
java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。
莫相离 该用户已被删除
沙发
发表于 2015-1-25 23:40:21 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
若天明 该用户已被删除
板凳
发表于 2015-2-4 13:04:25 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
小妖女 该用户已被删除
地板
发表于 2015-2-9 22:54:22 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
再见西城 该用户已被删除
5#
发表于 2015-2-28 03:34:29 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
飘灵儿 该用户已被删除
6#
发表于 2015-3-9 20:26:56 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
透明 该用户已被删除
7#
发表于 2015-3-17 00:38:50 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-23 10:06:25 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 05:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表