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)——简单的输入验证以及标签库的运用的更多相关文章

  1. struts2学习笔记(7)---数据验证之validateXxx()方法

    validateXxx()方法 上一篇文章写了使用Action的validate()方法,validate()仅仅能对action的所有方法进行验证.而要实现对action中特定的方法进行验证,就须要 ...

  2. Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)

    Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...

  3. Struts2 学习笔记(概述)

    Struts2 学习笔记 2015年3月7日11:02:55 MVC思想 Strust2的MVC对应关系如下: 在MVC三个模块当中,struts2对应关系如下: Model: 负责封装应用的状态,并 ...

  4. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  5. Struts2学习笔记⑧

    今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ...

  6. Struts2学习笔记①

    Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ...

  7. JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  8. matlab学习笔记5--低级文件输入输出函数

    一起来学matlab-matlab学习笔记5 低级文件输入输出函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 感谢张 ...

  9. Html学习笔记(二) 简单标签

    标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...

随机推荐

  1. 信号处理程序(signal handler)会被重置的信号

    首先说明我的系统,CentOS 6.6,内核为2.6.32-504.12.2.el6.i686. 当用signal对某个信号设定信号处理函数的时候,有些信号的处理函数会被重置,有些则不会,这种情况的具 ...

  2. 近期H5项目开发小结

    前言:2016差不多又过了半啦,最近参与了公司好几个h5项目(严格来说,也只能算是推广页面活动).主要是新品牌的推广需要,当然也有给公司以前老客户做的案例.今天主要总结下为新品牌开发的2个h5推广:就 ...

  3. JavaScript 时间显示

    <span id="localtime"><span> <script type="text/javascript"> fu ...

  4. linux安装IPython四种方法

    IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性.特别是它的代码补完功能,例如:在输入zlib.之后按下Tab键,IPytho ...

  5. Python操作列表的常用方法

     下面列出列表常用的方法操作列表以及小例子:   1.  Append      在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点:      A. append中添加的参数是作为一个整体 & ...

  6. Mac OS X 10.10.2 Yosemite jdk 环境变量配置

    我的Mac系统版本是OS X 10.10.2 Yosemite,为了用Eclipse做android开发,安装了jdk 1.7, 但是如果想使用IntelliJ IDE做android开发的话,就需要 ...

  7. HDFS命令行操作

    启动后可通过命令行使用hadoop. (1)所有命令 (先将$HADOOP_HOME/bin加入到.bashrc的$PATH变量中) [html] view plaincopy [hadoop@nod ...

  8. python之setattr,getattr,hasattr

    可以使用setattr(), getattr(), hasattr()动态对实例进行操作. 相当于Java中的反射机制, 或者更确切地, 像JavaScript中属性操作. 具体属性: __dict_ ...

  9. iOS的SandBox的结构研究

    在模拟器中运行iOS程序,都会为该程序创建一个沙盒(SandBox).首先声明,我用的系统是Max OS X 10.7.3,编译器是Xcode 4.3.2.想要找到沙盒目录,先运行Finder,然后在 ...

  10. SharePoint 101 Code Samples are now available

    The Microsoft Office Developer Center has created 101 code samples for SharePoint 2010. These sample ...