struts2标签库,struts2标签库分类

懵懂先生 投稿文章struts2标签库,struts2标签库分类已关闭评论54阅读模式

文章源自略懂百科-http://wswcn.cn/96370.html

第3章 Struts2标签库文章源自略懂百科-http://wswcn.cn/96370.html

本章学习目标文章源自略懂百科-http://wswcn.cn/96370.html

· 熟练掌握控制标签文章源自略懂百科-http://wswcn.cn/96370.html

· 熟练掌握数据标签文章源自略懂百科-http://wswcn.cn/96370.html

· 熟练掌握表单标签文章源自略懂百科-http://wswcn.cn/96370.html

· 了解其他标签文章源自略懂百科-http://wswcn.cn/96370.html

· 掌握OGNL表达式语言文章源自略懂百科-http://wswcn.cn/96370.html

在JavaWeb阶段,JSP标签库能够简化JSP的开发,避免JSP中嵌入大量Java脚本,同样的,常见的Web层框架也提供了自己特有的标签库,包括Struts2,它提供的标签库功能非常丰富,大大简化了开发,本章将详细讲解Struts2的标签库。文章源自略懂百科-http://wswcn.cn/96370.html

3.1Struts2标签库概述文章源自略懂百科-http://wswcn.cn/96370.html

3.1.1Struts2标签的分类文章源自略懂百科-http://wswcn.cn/96370.html

Struts2提供的标签库功能很强大,使用很简单,不依赖任何表现层技术,不仅可以在JSP页面中使用,也可以在其他页面中使用,例如FreeMarker等。文章源自略懂百科-http://wswcn.cn/96370.html

Struts2框架的标签库可以分为以下三类。文章源自略懂百科-http://wswcn.cn/96370.html

1.UI标签文章源自略懂百科-http://wswcn.cn/96370.html

UI标签主要用于生成HTML元素的标签,里面包含表单标签和非表单标签,其中表单标签主要用于生成HTML页面的form元素,以及普通表单元素的标签。非表单标签主要用于生成页面上的tree、tab页等。文章源自略懂百科-http://wswcn.cn/96370.html

2.非UI标签文章源自略懂百科-http://wswcn.cn/96370.html

非UI标签主要用于数据访问,逻辑控制,里面包含数据访问标签和流程控制标签,其中数据访问标签主要包含用于输出值栈中的值,完成国际化等功能。流程控制标签主要用于实现分支、循环等流程的控制。文章源自略懂百科-http://wswcn.cn/96370.html

3.Ajax标签文章源自略懂百科-http://wswcn.cn/96370.html

Ajax标签用的比较少,这里不做深入讨论,如果读者有兴趣,可以自己查阅相关资料。文章源自略懂百科-http://wswcn.cn/96370.html

3.1.2Struts2标签库的导入文章源自略懂百科-http://wswcn.cn/96370.html

在第一章中下载的struts-2.5.10.1-all.zip的lib目录下,有一个struts2-core-2.5.10.1.jar文件,该文件中包含了标签的处理类和描述文件,解压此文件,在META-INF目录下可以找到struts-tags.tld文件,该文件就是Struts2的标签库描述文件。文章源自略懂百科-http://wswcn.cn/96370.html

在JSP中使用标签库时,必须使用taglib指令引入标签库,具体示例如下。文章源自略懂百科-http://wswcn.cn/96370.html

<%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

如上示例中,prefix="s"指定了使用此标签库时的前缀,uri="/struts-tags"指定了标签库描述文件的路径,如果项目采用的Servlet规范版本是2.3或以下,还需要在web.xml中增加对标签库的定义,具体示例如下。文章源自略懂百科-http://wswcn.cn/96370.html

/struts-tags文章源自略懂百科-http://wswcn.cn/96370.html

/WEB-INF/lib/struts2-core-2.5.10.1.jar文章源自略懂百科-http://wswcn.cn/96370.html

介绍完标签库的导入,接下来将详细讲解每一类标签的使用。文章源自略懂百科-http://wswcn.cn/96370.html

3.2流程控制标签文章源自略懂百科-http://wswcn.cn/96370.html

流程控制标签主要用于流程的控制,例如分支、循环等操作,除此之外,还可以完成对集合的合并、排序等操作,接下来具体介绍流程控制标签。文章源自略懂百科-http://wswcn.cn/96370.html

3.2.1if标签文章源自略懂百科-http://wswcn.cn/96370.html

if标签与java的语法一样,做为条件判断来使用,标签内有一个test属性接收布尔类型参数,以此来判断输出的内容,接下来通过一个案例来演示if标签的使用,如例3-1所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-1 if.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 正确文章源自略懂百科-http://wswcn.cn/96370.html

15 错误文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 文章源自略懂百科-http://wswcn.cn/96370.html

例3-1的代码编写完成后,运行项目,在浏览器访问项目下的if.jsp,运行效果如图3.1所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.1 if.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.1中,if.jsp页面显示"正确",因为例3-1中,s:if标签的test属性判断是否为true,为true就输出标签体,为false则隐藏标签体。文章源自略懂百科-http://wswcn.cn/96370.html

3.2.2generator标签文章源自略懂百科-http://wswcn.cn/96370.html

generator标签是一个字符串解析器,用于将一个字符串解析成一个集合,接下来通过一个案例来演示generator标签的使用,如例3-2所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-2 generator.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 文章源自略懂百科-http://wswcn.cn/96370.html

20 文章源自略懂百科-http://wswcn.cn/96370.html

例3-2的代码编写完成后,运行项目,在浏览器访问项目下的if.jsp,运行效果如图3.2所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.2 generator.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.2中,generator.jsp页面显示"Java C C++",在例3-2中,利用generator标签,将字符串解析,根据逗号进行分割,解析完成后,通过iterator标签遍历解析完成后的集合,通过property标签显示集合内容。文章源自略懂百科-http://wswcn.cn/96370.html

3.2.3iterator标签文章源自略懂百科-http://wswcn.cn/96370.html

iterator标签是一个迭代器,用于将集合迭代输出,接下来通过一个案例来演示iterator标签的使用,如例3-3所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-3 iterator.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

例3-3的代码编写完成后,运行项目,在浏览器访问项目下的iterator.jsp,运行效果如图3.3所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.3 iterator.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.3中,iterator.jsp页面显示"1 2 3 4 5",在例3-3中,在iterator标签中用value属性声明要遍历的集合,然后通过property标签显示集合内容。文章源自略懂百科-http://wswcn.cn/96370.html

3.2.4subset标签文章源自略懂百科-http://wswcn.cn/96370.html

subset标签用于截取集合的部分元素,形成新的子集合,接下来通过一个案例来演示subset标签的使用,如例3-4所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-4 subset.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 start="1" count="3">文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 文章源自略懂百科-http://wswcn.cn/96370.html

20 文章源自略懂百科-http://wswcn.cn/96370.html

21 文章源自略懂百科-http://wswcn.cn/96370.html

22 文章源自略懂百科-http://wswcn.cn/96370.html

23 文章源自略懂百科-http://wswcn.cn/96370.html

例3-4的代码编写完成后,运行项目,在浏览器访问项目下的subset.jsp,运行效果如图3.4所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.4 subset.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.4中,subset.jsp页面显示"C C++ PHP",在例3-4中,在subset标签中用source属性指定源集合,用start属性指定从索引为1的元素开始取,这里索引从0开始,也就是从第二个元素开始取,最后用count指定子集中元素的个数为3,所以取得了三个元素,形成新的子集,然后通过iterator标签和property标签进行遍历显示。文章源自略懂百科-http://wswcn.cn/96370.html

3.3数据访问标签文章源自略懂百科-http://wswcn.cn/96370.html

数据访问标签主要用于各种数据访问相关的功能以及Action的调用等,接下来具体介绍数据访问标签。文章源自略懂百科-http://wswcn.cn/96370.html

3.3.1action标签文章源自略懂百科-http://wswcn.cn/96370.html

action标签用于在jsp页面中直接调用Action,接下来通过一个案例来演示action标签的使用,首先编写后台代码,如例3-5所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-5 MyAction.java文章源自略懂百科-http://wswcn.cn/96370.html

1 import com.opensymphony.xwork2.ActionSupport;文章源自略懂百科-http://wswcn.cn/96370.html

2 public class MyAction extends ActionSupport {文章源自略懂百科-http://wswcn.cn/96370.html

3 private static final long serialVersionUID = 1L;文章源自略懂百科-http://wswcn.cn/96370.html

4 public void myMethod() {文章源自略懂百科-http://wswcn.cn/96370.html

5 System.out.println("myMethod方法被调用了!");文章源自略懂百科-http://wswcn.cn/96370.html

6 }文章源自略懂百科-http://wswcn.cn/96370.html

7 }文章源自略懂百科-http://wswcn.cn/96370.html

接着在struts.xml文件中编写映射关系,如例3-6所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-6 struts.xml文章源自略懂百科-http://wswcn.cn/96370.html

1 文章源自略懂百科-http://wswcn.cn/96370.html

2 文章源自略懂百科-http://wswcn.cn/96370.html

3 "-//Apache Software Foundation//DTD Struts文章源自略懂百科-http://wswcn.cn/96370.html

4 Configuration 2.5//EN"文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://struts.apache.org/dtds/struts-2.5.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 value="false" />文章源自略懂百科-http://wswcn.cn/96370.html

9 文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 extends="struts-default">文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 class="com.qianfeng.struts.action.MyAction"文章源自略懂百科-http://wswcn.cn/96370.html

14 method="myMethod">文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

最后编写action.jsp页面,如例3-7所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-7 action.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 executeResult="false">文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

代码编写完成后,运行项目,在浏览器访问项目下的action.jsp,控制台会打印出"myMethod方法被调用了!"运行效果如图3.5所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.5 控制台文章源自略懂百科-http://wswcn.cn/96370.html

在例3-5中,编写了一个Action实现类,自定义了一个myMethod方法,方法内在控制台输出"myMethod方法被调用了!",例3-6中在struts.xml配置文件中,定义name为myAction的实现类,例3-7中在页面直接使用action标签访问name为myAction的Action。文章源自略懂百科-http://wswcn.cn/96370.html

3.3.2bean标签文章源自略懂百科-http://wswcn.cn/96370.html

bean标签用于创建一个JavaBean的实例,可以通过bean标签的子标签param给JavaBean传入参数,接下来通过一个案例来演示bean标签的使用,首先新建一个JavaBean的类,这里将类建在com.qianfeng.struts.entity包下,如例3-8所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-8 Student.java文章源自略懂百科-http://wswcn.cn/96370.html

1 package com.qianfeng.struts.entity;文章源自略懂百科-http://wswcn.cn/96370.html

2 public class Student {文章源自略懂百科-http://wswcn.cn/96370.html

3 private String name;文章源自略懂百科-http://wswcn.cn/96370.html

4 private int age;文章源自略懂百科-http://wswcn.cn/96370.html

5 public String getName() {文章源自略懂百科-http://wswcn.cn/96370.html

6 return name;文章源自略懂百科-http://wswcn.cn/96370.html

7 }文章源自略懂百科-http://wswcn.cn/96370.html

8 public void setName(String name) {文章源自略懂百科-http://wswcn.cn/96370.html

9 this.name = name;文章源自略懂百科-http://wswcn.cn/96370.html

10 }文章源自略懂百科-http://wswcn.cn/96370.html

11 public int getAge() {文章源自略懂百科-http://wswcn.cn/96370.html

12 return age;文章源自略懂百科-http://wswcn.cn/96370.html

13 }文章源自略懂百科-http://wswcn.cn/96370.html

14 public void setAge(int age) {文章源自略懂百科-http://wswcn.cn/96370.html

15 this.age = age;文章源自略懂百科-http://wswcn.cn/96370.html

16 }文章源自略懂百科-http://wswcn.cn/96370.html

17 @Override文章源自略懂百科-http://wswcn.cn/96370.html

18 public String toString() {文章源自略懂百科-http://wswcn.cn/96370.html

19 return "Student [name=" + name + ", age=" + age + "]";文章源自略懂百科-http://wswcn.cn/96370.html

20 }文章源自略懂百科-http://wswcn.cn/96370.html

21 }文章源自略懂百科-http://wswcn.cn/96370.html

接下来编写bean.jsp页面,如例3-9所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-9 bean.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 Person实例的name为:文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 Person实例的age为:文章源自略懂百科-http://wswcn.cn/96370.html

20 文章源自略懂百科-http://wswcn.cn/96370.html

21 文章源自略懂百科-http://wswcn.cn/96370.html

22 文章源自略懂百科-http://wswcn.cn/96370.html

代码编写完成后,运行项目,在浏览器访问项目下的bean.jsp,运行效果如图3.6所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.6 bean.jsp文章源自略懂百科-http://wswcn.cn/96370.html

在例3-8中,创建了一个Student实体类,在例3-9中,直接使用bean标签的name属性指定要创建的实体类是在com.qianfeng.struts.entity包下的Student,var属性指定别名为s,在子标签param中,分别指定了实体类的name和age属性值,创建完成后,通过property标签取到了创建好的实例的值,这里实际上是将类的实例放到了值栈的栈顶,关于值栈会在后面详细讲解。文章源自略懂百科-http://wswcn.cn/96370.html

3.3.3date标签文章源自略懂百科-http://wswcn.cn/96370.html

date标签用于日期的相关操作,例如日期格式化,接下来通过一个案例来演示date标签的使用,如例3-10所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-10 date.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 <%文章源自略懂百科-http://wswcn.cn/96370.html

13 java.util.Date now = new java.util.Date();文章源自略懂百科-http://wswcn.cn/96370.html

14 pageContext.setAttribute("now", now);文章源自略懂百科-http://wswcn.cn/96370.html

15 %>文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 文章源自略懂百科-http://wswcn.cn/96370.html

20 文章源自略懂百科-http://wswcn.cn/96370.html

例3-10的代码编写完成后,运行项目,在浏览器访问项目下的date.jsp,运行效果如图3.7所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.7 date.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.7中,bean.jsp页面显示了格式化后的当前时间,在例3-10中,通过java脚本创建了一个Date对象now,赋值为当前时间,将now设置到了page域中,指定date标签的name属性为now,用format属性指定了日期的格式。文章源自略懂百科-http://wswcn.cn/96370.html

3.4表单标签文章源自略懂百科-http://wswcn.cn/96370.html

表单标签对应着HTML中的表单元素,Struts2表单标签提供了很多简单易用的属性,大大提高开发效率,开发时,这些表单属性实际上对应着Action中的属性值,Struts2框架会将提交的表单信息直接赋给对应的Action属性,接下来具体介绍表单标签。文章源自略懂百科-http://wswcn.cn/96370.html

3.4.1form标签文章源自略懂百科-http://wswcn.cn/96370.html

form标签用于定义form表单,接下来通过一个案例来演示form标签的使用,如例3-11所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-11 form.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 用户名:文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 密   码:文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 文章源自略懂百科-http://wswcn.cn/96370.html

20 文章源自略懂百科-http://wswcn.cn/96370.html

21 文章源自略懂百科-http://wswcn.cn/96370.html

22 文章源自略懂百科-http://wswcn.cn/96370.html

例3-11的代码编写完成后,运行项目,在浏览器访问项目下的form.jsp,运行效果如图3.8所示。文章源自略懂百科-http://wswcn.cn/96370.html

图3.8文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.9 form.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.8中,form.jsp页面了一个登陆的表单,在例3-11中,在form标签中写了三个input标签,定义表单中的内容,有用户名、密码和提交。文章源自略懂百科-http://wswcn.cn/96370.html

3.4.2textfield标签文章源自略懂百科-http://wswcn.cn/96370.html

textfield标签用于定义普通文本输入框,接下来通过一个案例来演示textfield标签的使用,如例3-12所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-12 textfield.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

例3-12的代码编写完成后,运行项目,在浏览器访问项目下的textfield.jsp,运行效果如图3.9所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.10 textfield.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.9中,textfield.jsp页面显示用户名输入框,例3-12中,首先定义表单,然后在textfield标签中用name属性指定文本框的名字,用label属性指定文本框前的描述文字。文章源自略懂百科-http://wswcn.cn/96370.html

3.4.3password标签文章源自略懂百科-http://wswcn.cn/96370.html

password标签用于定义一个密码框,接下来通过一个案例来演示password标签的使用,如例3-13所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-13 password.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

例3-8的代码编写完成后,运行项目,在浏览器访问项目下的password.jsp,运行效果如图3.10所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.11 password.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.10中,password.jsp页面显示了一个密码文本框,输入的密码隐式显示,在例3-13中,首先定义表单,然后在password标签中用name属性指定文本框的名字,用label属性指定文本框前的描述文字。文章源自略懂百科-http://wswcn.cn/96370.html

3.4.4radio标签文章源自略懂百科-http://wswcn.cn/96370.html

radio标签用于定义单选框,接下来通过一个案例来演示radio标签的使用,如例3-14所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-14 radio.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 label="性别" />文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 文章源自略懂百科-http://wswcn.cn/96370.html

例3-14的代码编写完成后,运行项目,在浏览器访问项目下的radio.jsp,运行效果如图3.11所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.12 radio.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.11中,radio.jsp页面显示了一个单选项,默认选择"男",在例3-14中,首先定义表单,然后在radio标签中用list属性指定单选项的内容,用value属性指定默认值为1,也就是默认选择"男",用name属性指定单选框的名字,用label属性指定文本框前的描述文字。文章源自略懂百科-http://wswcn.cn/96370.html

3.4.5checkboxlist标签文章源自略懂百科-http://wswcn.cn/96370.html

checkboxlist标签用于定义多选框,接下来通过一个案例来演示checkboxlist标签的使用,如例3-15所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-15 checkboxlist.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 name="love" label="爱好" />文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 文章源自略懂百科-http://wswcn.cn/96370.html

例3-15的代码编写完成后,运行项目,在浏览器访问项目下的checkboxlist.jsp,运行效果如图3.12所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.13 checkboxlist.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.12中,checkboxlist.jsp页面显示了一个多选框,在例3-15中,首先定义表单,然后在checkboxlist标签中用list属性指定多选框的内容,用name属性指定多选框的名字,用label属性指定文本框前的描述文字。文章源自略懂百科-http://wswcn.cn/96370.html

3.4.6select标签文章源自略懂百科-http://wswcn.cn/96370.html

select标签用于定义下拉选项,接下来通过一个案例来演示select标签的使用,如例3-16所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-16 select.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 headerValue="--歌手--">文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 label="男歌手" />文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 label="女歌手" />文章源自略懂百科-http://wswcn.cn/96370.html

20 文章源自略懂百科-http://wswcn.cn/96370.html

21 文章源自略懂百科-http://wswcn.cn/96370.html

22 文章源自略懂百科-http://wswcn.cn/96370.html

23 文章源自略懂百科-http://wswcn.cn/96370.html

24 文章源自略懂百科-http://wswcn.cn/96370.html

例3-16的代码编写完成后,运行项目,在浏览器访问项目下的select.jsp,运行效果如图3.13所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.14 select.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.13中,select.jsp页面显示了一个下拉选项,在例3-16中,首先定义表单,然后在select标签中用headerValue属性指定下拉选项第一项的值,用optgroup子标签指定下拉项中的分类选项,用label属性指定文本框前的描述文字。文章源自略懂百科-http://wswcn.cn/96370.html

3.4.7textarea标签文章源自略懂百科-http://wswcn.cn/96370.html

textarea标签用于定义文本域,接下来通过一个案例来演示textarea标签的使用,如例3-17所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-17 textarea.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

例3-17的代码编写完成后,运行项目,在浏览器访问项目下的textarea.jsp,运行效果如图3.14所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.15 textarea.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.14中,textarea.jsp页面显示了一个文本域,在例3-17中,首先定义表单,然后在textarea标签中用name属性指定文本域的名字,用label属性指定文本框前的描述文字。文章源自略懂百科-http://wswcn.cn/96370.html

3.4.8submit标签文章源自略懂百科-http://wswcn.cn/96370.html

submit标签用于定义表单提交按钮,接下来通过一个案例来演示submit标签的使用,如例3-18所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-18 submit.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 label="性别" />文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 name="love" label="爱好" />文章源自略懂百科-http://wswcn.cn/96370.html

20 文章源自略懂百科-http://wswcn.cn/96370.html

21 headerKey="-1" headerValue="--歌手--">文章源自略懂百科-http://wswcn.cn/96370.html

22 文章源自略懂百科-http://wswcn.cn/96370.html

23 label="男歌手" />文章源自略懂百科-http://wswcn.cn/96370.html

24 文章源自略懂百科-http://wswcn.cn/96370.html

25 label="女歌手" />文章源自略懂百科-http://wswcn.cn/96370.html

26 文章源自略懂百科-http://wswcn.cn/96370.html

27 文章源自略懂百科-http://wswcn.cn/96370.html

28 文章源自略懂百科-http://wswcn.cn/96370.html

29 文章源自略懂百科-http://wswcn.cn/96370.html

30 文章源自略懂百科-http://wswcn.cn/96370.html

31 文章源自略懂百科-http://wswcn.cn/96370.html

32 文章源自略懂百科-http://wswcn.cn/96370.html

例3-18的代码编写完成后,运行项目,在浏览器访问项目下的submit.jsp,运行效果如图3.15所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.16 submit.jsp文章源自略懂百科-http://wswcn.cn/96370.html

图3.15中,submit.jsp页面显示了一个表单,表单最下边有一个提交按钮,可以提交整个表单到一个action,在例3-18中,首先定义表单,表单中定义了各种需要填写的项,最后用submit标签定义了一个提交按钮用于提交表单。文章源自略懂百科-http://wswcn.cn/96370.html

3.5其他标签文章源自略懂百科-http://wswcn.cn/96370.html

讲解完大部分标签后,还需要了解一些其他标签,以便提高开发效率。文章源自略懂百科-http://wswcn.cn/96370.html

3.5.1a标签文章源自略懂百科-http://wswcn.cn/96370.html

a标签用于定义超链接,接下来通过一个案例来演示a标签的使用,首先编写后台代码,如例3-19所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-19 TestAction.java文章源自略懂百科-http://wswcn.cn/96370.html

1 import com.opensymphony.xwork2.ActionSupport;文章源自略懂百科-http://wswcn.cn/96370.html

2 public class TestAction extends ActionSupport {文章源自略懂百科-http://wswcn.cn/96370.html

3 private static final long serialVersionUID = 1L;文章源自略懂百科-http://wswcn.cn/96370.html

4 public String execute() {文章源自略懂百科-http://wswcn.cn/96370.html

5 return SUCCESS;文章源自略懂百科-http://wswcn.cn/96370.html

6 }文章源自略懂百科-http://wswcn.cn/96370.html

7 }文章源自略懂百科-http://wswcn.cn/96370.html

接着在struts.xml文件中编写映射关系,如例3-20所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-20 struts.xml文章源自略懂百科-http://wswcn.cn/96370.html

1 文章源自略懂百科-http://wswcn.cn/96370.html

2 文章源自略懂百科-http://wswcn.cn/96370.html

3 "-//Apache Software Foundation//DTD Struts文章源自略懂百科-http://wswcn.cn/96370.html

4 Configuration 2.5//EN"文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://struts.apache.org/dtds/struts-2.5.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 value="false" />文章源自略懂百科-http://wswcn.cn/96370.html

9 文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 extends="struts-default">文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 class="com.qianfeng.struts.action.TestAction"文章源自略懂百科-http://wswcn.cn/96370.html

14 method="execute">文章源自略懂百科-http://wswcn.cn/96370.html

15 /target.jsp文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

接着编写前台页面a.jsp页面,如例3-21所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-21 a.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 跳转到target页面文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 文章源自略懂百科-http://wswcn.cn/96370.html

20 文章源自略懂百科-http://wswcn.cn/96370.html

最后编写target.jsp页面,如例3-22所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-22 target.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

target页面

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

代码编写完成后,运行项目,在浏览器访问项目下的a.jsp,运行效果如图3.16所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.17 a.jsp文章源自略懂百科-http://wswcn.cn/96370.html

点击"跳转到target"页面,运行效果如图3.17所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.18 target.jsp文章源自略懂百科-http://wswcn.cn/96370.html

在例3-21中,用a标签发送了testAction.action的请求,struts.xml会根据请求,自动找到实现类,实现类中返回了success字符串,根据返回值,跳转到了target.jsp页面。文章源自略懂百科-http://wswcn.cn/96370.html

3.5.2actionerror、actionmessage、fielderror标签文章源自略懂百科-http://wswcn.cn/96370.html

actionerror标签用于输出错误信息到客户端,输出的内容通过getActionErrors()方法获得,actionmessage标签用于输出提示信息到客户端,输出的内容通过getActionMessages()方法获得,fielderror标签用于输出fieldErrors属性保存的字段错误,fieldErrors是一个Map类型的属性,接下来通过一个案例来演示这三个标签的使用,首先编写后台代码,如例3-23所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-23 error.java文章源自略懂百科-http://wswcn.cn/96370.html

1 import com.opensymphony.xwork2.ActionSupport;文章源自略懂百科-http://wswcn.cn/96370.html

2 public class ErrorAction extends ActionSupport {文章源自略懂百科-http://wswcn.cn/96370.html

3 private static final long serialVersionUID = 1L;文章源自略懂百科-http://wswcn.cn/96370.html

4 public String execute() {文章源自略懂百科-http://wswcn.cn/96370.html

5 addActionError("第一个error");文章源自略懂百科-http://wswcn.cn/96370.html

6 addActionError("第二个error");文章源自略懂百科-http://wswcn.cn/96370.html

7 addActionMessage("第一个message");文章源自略懂百科-http://wswcn.cn/96370.html

8 addActionMessage("第二个message");文章源自略懂百科-http://wswcn.cn/96370.html

9 addFieldError("f1", "第一个fieldError");文章源自略懂百科-http://wswcn.cn/96370.html

10 addFieldError("f2", "第二个fieldError");文章源自略懂百科-http://wswcn.cn/96370.html

11 return SUCCESS;文章源自略懂百科-http://wswcn.cn/96370.html

12 }文章源自略懂百科-http://wswcn.cn/96370.html

13 }文章源自略懂百科-http://wswcn.cn/96370.html

接着在struts.xml文件中编写映射关系,如例3-24所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-24 struts.xml文章源自略懂百科-http://wswcn.cn/96370.html

1 文章源自略懂百科-http://wswcn.cn/96370.html

2 文章源自略懂百科-http://wswcn.cn/96370.html

3 "-//Apache Software Foundation//DTD Struts文章源自略懂百科-http://wswcn.cn/96370.html

4 Configuration 2.5//EN"文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://struts.apache.org/dtds/struts-2.5.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 value="false" />文章源自略懂百科-http://wswcn.cn/96370.html

9 文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 extends="struts-default">文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 class="com.qianfeng.struts.action.ErrorAction"文章源自略懂百科-http://wswcn.cn/96370.html

14 method="execute">文章源自略懂百科-http://wswcn.cn/96370.html

15 /error.jsp文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

接着编写前台页面src.jsp页面,如例3-25所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-25 src.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 跳转到error.jsp页面文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

19 文章源自略懂百科-http://wswcn.cn/96370.html

20 文章源自略懂百科-http://wswcn.cn/96370.html

最后编写error.jsp页面,如例3-26所示。文章源自略懂百科-http://wswcn.cn/96370.html

例3-26 error.jsp文章源自略懂百科-http://wswcn.cn/96370.html

1 <%@ page language="java" contentType="text/html; charset=UTF-8"文章源自略懂百科-http://wswcn.cn/96370.html

2 pageEncoding="UTF-8"%>文章源自略懂百科-http://wswcn.cn/96370.html

3 <%@taglib prefix="s" uri="/struts-tags"%>文章源自略懂百科-http://wswcn.cn/96370.html

4 文章源自略懂百科-http://wswcn.cn/96370.html

5 "http://www.w3.org/TR/html4/loose.dtd">文章源自略懂百科-http://wswcn.cn/96370.html

6 文章源自略懂百科-http://wswcn.cn/96370.html

7 文章源自略懂百科-http://wswcn.cn/96370.html

8 文章源自略懂百科-http://wswcn.cn/96370.html

9 Insert title here文章源自略懂百科-http://wswcn.cn/96370.html

10 文章源自略懂百科-http://wswcn.cn/96370.html

11 文章源自略懂百科-http://wswcn.cn/96370.html

12 文章源自略懂百科-http://wswcn.cn/96370.html

13 文章源自略懂百科-http://wswcn.cn/96370.html

14 文章源自略懂百科-http://wswcn.cn/96370.html

15 文章源自略懂百科-http://wswcn.cn/96370.html

16 文章源自略懂百科-http://wswcn.cn/96370.html

17 文章源自略懂百科-http://wswcn.cn/96370.html

18 文章源自略懂百科-http://wswcn.cn/96370.html

代码编写完成后,运行项目,在浏览器访问项目下的src.jsp,运行效果如图3.18所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.19 src.jsp文章源自略懂百科-http://wswcn.cn/96370.html

点击"跳转到error.jsp页面",页面直接跳转到error.jsp,运行效果如图3.19所示。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

图3.1 src.jsp文章源自略懂百科-http://wswcn.cn/96370.html

代码运行后,error.jsp页面显示了Action中设置的值,此处只需了解这三个标签的使用,需要人为地在Action中加入对应的信息时直接套用即可。文章源自略懂百科-http://wswcn.cn/96370.html

3.6OGNL表达式语言文章源自略懂百科-http://wswcn.cn/96370.html

3.6.1OGNL和值栈文章源自略懂百科-http://wswcn.cn/96370.html

3.6.2OGNL常用符号文章源自略懂百科-http://wswcn.cn/96370.html

3.6.3OGNL集合操作文章源自略懂百科-http://wswcn.cn/96370.html

3.7本章小结文章源自略懂百科-http://wswcn.cn/96370.html

本章介绍了Struts2标签库中的标签,主要包括流程控制标签、数据访问标签、表单标签和一些非表单标签,最后介绍了OGNL与值栈的相关知识,这里需要读者结合实践去理解,本章的内容不需要去背,反复练习自然能熟练掌握。文章源自略懂百科-http://wswcn.cn/96370.html

3.8习题文章源自略懂百科-http://wswcn.cn/96370.html

1.填空题文章源自略懂百科-http://wswcn.cn/96370.html

(1)标签主要用于生成HTML元素的标签,里面包含表单标签和非表单标签。文章源自略懂百科-http://wswcn.cn/96370.html

(2) 标签主要用于流程的控制,例如分支、循环等操作。文章源自略懂百科-http://wswcn.cn/96370.html

(3) 标签主要用于各种数据访问相关的功能以及Action的调用等。文章源自略懂百科-http://wswcn.cn/96370.html

(4) form标签用于定义。文章源自略懂百科-http://wswcn.cn/96370.html

(5) 标签用于输出错误信息到客户端。文章源自略懂百科-http://wswcn.cn/96370.html

2.选择题文章源自略懂百科-http://wswcn.cn/96370.html

(1)下列不是Struts2标签类别的是( )。文章源自略懂百科-http://wswcn.cn/96370.html

A.UI标签B.Ajax标签文章源自略懂百科-http://wswcn.cn/96370.html

C.jQuery标签D.非UI标签文章源自略懂百科-http://wswcn.cn/96370.html

(2)下列不属于流程控制标签的是( )。文章源自略懂百科-http://wswcn.cn/96370.html

A.treeB.iterator文章源自略懂百科-http://wswcn.cn/96370.html

C.ifD.subset文章源自略懂百科-http://wswcn.cn/96370.html

(3)下列不属于数据访问标签的是( )。文章源自略懂百科-http://wswcn.cn/96370.html

A.actionB.date文章源自略懂百科-http://wswcn.cn/96370.html

C.beanD.reset文章源自略懂百科-http://wswcn.cn/96370.html

(4)下列不属于表单标签的是( )。文章源自略懂百科-http://wswcn.cn/96370.html

A.radioB.select文章源自略懂百科-http://wswcn.cn/96370.html

C.propertyD.textarea文章源自略懂百科-http://wswcn.cn/96370.html

(5)下列不能在页面显示后台自定义信息的是( )。文章源自略懂百科-http://wswcn.cn/96370.html

A.fielderrorB.file文章源自略懂百科-http://wswcn.cn/96370.html

C.actionmessageD.actionerror文章源自略懂百科-http://wswcn.cn/96370.html

3.思考题文章源自略懂百科-http://wswcn.cn/96370.html

(1) 请简述Struts2标签库的分类。文章源自略懂百科-http://wswcn.cn/96370.html

(2) 请简述Struts2标签库如何导入。文章源自略懂百科-http://wswcn.cn/96370.html

(3) 请简述流程控制标签有哪些。文章源自略懂百科-http://wswcn.cn/96370.html

(4) 请简述数据访问标签有哪些。文章源自略懂百科-http://wswcn.cn/96370.html

(5) 请简述表单标签有哪些。文章源自略懂百科-http://wswcn.cn/96370.html

文章源自略懂百科-http://wswcn.cn/96370.html

懵懂先生
  • 本文由 发表于 2023年2月23日 15:55:10
  • 转载请注明:http://wswcn.cn/96370.html
投稿文章

杨枝甘露名字最初是哪个奶茶店(杨枝甘露名字的由来)

今年夏天,几乎所有的连锁不只奶茶店 都在推杨枝甘露 ​ 怎么,现在饮料界为了公平竞争,都不走素质教育,改应试教育,发统一试卷,出命题作文了吗 从蜜雪冰城、益禾堂到喜茶、星巴克 大家像不同层次的学生,以...
投稿文章

好文:迷你世界新皮肤方法怎样获得(迷你世界新皮肤获得方法攻略)

[华峰博客网] 迷你世界自制皮肤教程。小编特意做了这一期,大家快一起来看看吧,希望对大家有所帮助。 目前迷你星工场功能还未实装到游戏当中,大家耐心等待下次更新哦~ 具体要怎么实现呢? 找到迷你星工场 ...
投稿文章

机油在哪里 买机油网上到哪里买是正品

大家好,我是小曾;跟大家一起学习、讨论汽车知识已经有很长一段时间了,很多朋友问小曾,怎么才能买到真机油,这个问题确实困扰着大家,假机油的润滑效果不行,抗衰减的里程很短,清洗发动机的效果也很差,发动机很...
投稿文章

洛克王国怎么去九龙长廊,洛克王国九龙长廊拼图怎么弄

hello!大家好,又到了一日一度的杨某讲游戏环节了,赶紧系好安全带,准备上车吧! 我们知道,呱呱系列一直都是《洛克王国》游戏中人气极高的宠物,虽然现在的呱呱系列宠物已经更新到了7种形态,包括圣诞呱呱...