struts2学习笔记(2)——简单的输入验证以及标签库的运用
struts2自带了一些标签库,运用好这些标签库会减少开发周期。
1.struts2标签库是在哪定义的?
struts2标签库定义在struts2-core-2.1.8.jar这个文件中,具体在这个jar的META-INF文件夹struts-tags.tld中。
2.如何引用struts2标签库?
使用<%@ taglib prefix="s" uri="/struts-tags" %>可以引用,其中uri是在struts-tags.tld中指定的。
重构昨天的应用:
<s:form action="login">
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"></s:password>
<s:submit label="submit"></s:submit>
</s:form>
其中注意的是form的action是login而不是html中的login.action,两者表示的意思一样。标签中的label属性值将显示在textfield前。
然后修改LoginAction类,让其继承ActionSupport类,以实现简单验证功能。昨天写的类是一个POJO,与struts2无关。而现在这个类的功能将更加强大。
override其方法validate,来实现验证功能。
内容:
if (null == this.getUsername() || "".equals(this.getUsername().trim())) {
this.addFieldError("username", "username required");
}
if (null == this.getPassword()|| "".equals(this.getPassword().trim())) {
this.addFieldError("password", "password required");
}
}
作用是来验证输入的内容是否为空(为什么不用JavaScript来验证???)
这里用到了一个小技巧,顺便提一下:
"".equals(this.getUsername().trim())
把常量放在前面可以避免当this.getUsername()为空时抛出异常
this.addFieldError("username", "username required");
可以在username上面显示出错信息(username required)
接着在struts2中指定信息没有输入完整时的处理方法,即在struts.xml中进行配置
<result name="input">/login2.jsp</result>
在validate方法中只做一些简单的验证,判断是否为空等,不会涉及业务逻辑。
程序流程:
在login.jsp中输入数据提交后,struts2拦截用户请求,然后发送请求到LoginAction处理请求,LoginAction调用validate方法进行验证。
若不通过,则交给struts2再次转发给login.jsp处理,并显示出相应的出错信息,由(this.addFieldError())方法指定。
若通过,则进行相应的set操作,结束后调用execute方法,返回相应的处理结果到struts2。
然后struts2根据返回的结果转发到相应的页面(result.jsp)
下次将介绍一下struts2的局部类型转换。
原地址:http://blog.csdn.net/fanghao16/article/details/4710592
struts2学习笔记(2)——简单的输入验证以及标签库的运用的更多相关文章
- struts2学习笔记(7)---数据验证之validateXxx()方法
validateXxx()方法 上一篇文章写了使用Action的validate()方法,validate()仅仅能对action的所有方法进行验证.而要实现对action中特定的方法进行验证,就须要 ...
- Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)
Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...
- Struts2 学习笔记(概述)
Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并 ...
- JSP学习笔记(三):简单的Tomcat Web服务器
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- Struts2学习笔记⑧
今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ...
- Struts2学习笔记①
Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ...
- JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- matlab学习笔记5--低级文件输入输出函数
一起来学matlab-matlab学习笔记5 低级文件输入输出函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 感谢张 ...
- Html学习笔记(二) 简单标签
标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...
随机推荐
- MySQL高可用之MHA (转)
MySQL高可用之MHA MHA简介 MHA是由日本人yoshinorim(原就职于DeNA现就职于FaceBook)开发的比较成熟的MySQL高可用方案.MHA能够在30秒内实现故障切换,并能在故障 ...
- 初识NoSQL 快速认识NoSQL数据库 分析Analytics For Hackers: How To Think About Event Data
做了一年的大一年度项目了,对于关系型数据库结构还是有些了解了,有的时候还是觉得这种二维表不是很顺手.在看过一篇文章之后,对NoSQL有了初步的了解,(https://keen.io/blog/5395 ...
- PHP中文URL编解码(urlencode()rawurlencode()
PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20',不过应该注意的是,在编码时应该只 ...
- string和stringBuilder的区别
曾经被问到过这个问题,回答得不是很好,在网上找了一下,园子里有大神很详细地讨论了二者的区别. http://www.cnblogs.com/yunfeng8967/articles/1093832.h ...
- MyEclipse管理部署Maven项目 供调试
今天对Maven的一个项目弄到头大,用MyEclipse10.x做了半天都没有部署成功. 后来发现用maven自己的maven4myelipse插件配置一下Goals:tomcat:run就好了,其他 ...
- 从零单排学JavaWeb
之前是一个asp爱好者,感觉前途渺茫,特此转向Powerful的Java阵型,寻求心灵上的慰藉. 把自己遇到的问题记录下来,同时也分享给大家. 环境-下载 1 JDK http://dlsw.bai ...
- 回溯(su)算法之N皇后问题
这里回溯算法还要好好研究一下 试探一个位置是否有效,如果有效,试探下一个位置(DFS),如果无效则回退 1.定义一个解空间,存放一个解的空间 2.DFS(暂且认为是DFS) 这里N皇后用的是递归+回溯 ...
- 【转】HTTP-only Cookie 脚本获取JSESSIONID的方法
彻底避免xss攻击的方法. 别人可以通过注入js脚本获取你的session cookie,如果幸运的话还可以获取通过js遍历你的dom树获取你的用户的用户名和密码. 如果只是通过正则表达式验证输入的话 ...
- C# type - IsPrimitive
Type t = typeof(string); if (t.IsPrimitive)//not { Console.WriteLine("string is a Primitive&quo ...
- ffmpeg mp3转ogg的命令
ffmpeg.exe -y -i bb.mp3 -acodec libvorbis -ab 128k bb.ogg