跟我学Struts框架中的标签库—— Logic标签的应用实例

跟我学Struts框架中的标签库—— Logic标签的应用实例
跟我学Struts框架中的标签库—— Logic标签的应用实例

目录

1.1跟我学Struts框架中的标签库——Logic标签的应用实例 (2)

1.1.1Struts中的逻辑标签库 (2)

1.1.2Logic标签的各种应用实例 (3)

1.1.3进行字符串匹配的Logic标签及应用实例 (6)

1.1.4判断指定的内容是否存在的Logic标签及应用实例 (7)

1.1.5进行循环遍历的Logic标签及应用实例 (10)

1.1.6进行请求转发或者重定向的Logic标签 (17)

1.1.7Logic标签的应用示例 (18)

1.1跟我学Struts框架中的标签库—— Logic标签的应用实例

1.1.1Struts中的逻辑标签库

1、概述

利用逻辑库中的标签可以根据特定的逻辑条件来控制输出网页的内容或者循环遍历集合中的所有元素从而重复地产生输出文本。

这些逻辑库的标签能够用来处理外观逻辑而不需要使用scriptlet脚本。这些标记封装在文件名为struts-logic.tld的标记包中。

2、种类

逻辑标记库定义的标记能够执行下列三个功能:

1)各种条件逻辑

2)重复

3)转发/重定向响应

3、进行条件比较运算的Logic标签

(1)种类

所有的比较运算都比较一个变量和指定的常量的大小,并且采用value属性指定常量的值。主要有如下的比较标签:

1)比较变量是否等于指定的常量

2)比较变量是否小于或者等于指定的常量

3)比较变量是否小于指定的常量

4)比较变量是否大于或者等于指定的常量

5)比较变量是否大于指定的常量

6)比较变量是否不等于指定的常量

这一类的所有标记有相同的属性

1.1.2Logic标签的各种应用实例

1、典型实例一

设置cookie属性,此时变量为cookie属性指定的Cookie的值。从而可以识别cookie 中的指定名称属性的值是否为所希望的值。

<%

Cookie c = new Cookie("username", "zhang");

c.setComment("A test cookie");

c.setMaxAge(3600); //60 seconds times 60 minutes

response.addCookie(c);

%>

UserName in Cookie is zhang

上面的代码比较名称为"username"的Cookie的值是否为"zhang",此处的比较结果为true。上面的标签等效于下面的脚本:

if(cook.getValue(“username”).equal(“zhang”))

{

out.print(“UserName in Cookie is zhang”);

}

2、典型实例二

设置header属性,此时变量为header属性指定的HTTP请求中的Header的值

Client’s language i s: zh-cn.

上面比较HTTP请求中的"Accept-Language" 的值是否为"zh-cn" ,如果比较结果为true则执行标签体的内容。

3、典型实例三

设置parameter属性,此时变量为parameter属性所指定的请求的参数值

The first request parameter is greater than 100

上面的代码比较名称为“queryStringName”的请求参数的值是否大于“100”,如果比较的结果为true。就执行标签体内的内容。比如请求的URL为:https://www.360docs.net/doc/6014766631.html,/index.jsp?queryStringName =200,则会执行标签体的内容。

4、典型实例四

设置name属性,此时name属性指定被比较的变量。比较运算标签调用变量的toString()方法,获得被比较的字符串值。

<%

request.setAttribute("intBean",new Integer(100));

%>

The value of intBean is "100".

上面的代码先定义一个名称为“intBean”的Integer类型的变量,然后利用标签比较intBean 的toString()方法的返回值的字符串是否为100。本例的执行结果为true。

5、典型实例五

同时设置name和property属性,此时name属性指定已经存在的JavaBean的名称,而property属性指定JavaBean中的某一个属性变量的名称,被比较的变量为该属性的值。

<%

SomeBean bean=new SomeBean();

bean.set Name("Linda");

request.setAttribute("someBean",bean);

%>

The name of someBean is not "Tom"

上面的代码先定义了一个名称为“someBean”的JavaBean,然后再利用标签比较JavaBean中的name属性的值是否不等于“Tom”。本例的执行结果为true。

注意:如果两个字符串都可以成功地转化为数字,就比较数字的大小,否则就进行字符串比较。

<% request.setAttribute("number","100"); %>

"100" equals "100.0"

上面将100和100.0进行比较,由于两者都是数字,因此比较的结果是以数值是否相等来判断的。

"100" is less than "100.0a"

上面将100和100.0a进行比较,由于后者是字符串,因此比较的字符串“100”是否小于字符串“100.0a”,其比较的结果为true。

6、典型实例六

根据某个JavaBean组件中的某属性的值显示不同的图像(下面的oneBBSInfo代表某个BBSInfo类的对象,而bbsIconID为该JavaBean中的一个成员属性)

type="com.px1987.sshwebbbs.hibernatedao.BBSInfo">

7、典型实例七

其中的value属性所代表的值,也可以为布尔量true或者false。

等同于下面的JSTL的标签状态

1.1.3进行字符串匹配的Logic标签及应用实例

1、概述

主要有标签,其中前面的标签主要实现判断变量中是否包含指定的常

量字符串,而后面的标签主要实现判断变量中是否不包含指定的常量字符串。两者都采用value属性来指定常量字符串,并且可以通过cookie 、header、parameter、name和property等属性来设置变量。

该组标签的用法与前面的比较标签的用法基本相同。

2、典型应用的例一

<%

request.setAttribute("authorName", "zhanghua");

%>

has the string 'zhang' in it.

上面的代码先定义一个名称为“authorName”的字符串变量,它的字符串的值为“zhanghua”。然后利用标签来判断在名称为“authorName”的字符串变量中是否包含有“zhang”子字符串。本例的判断结果为true,同时也将执行标签体的内容。

3、典型应用的例二

利用location属性指定子字符串的位置,如果没有指定location属性,子字符串可以位于母字符串的任何位置。location的可选值包括

1)Start:子字符串位于母字符串的起始位置

2)end:子字符串位于母字符串的结束位置

starts with the string 'Linda'.

doesn't start with the string 'Linda'.

1.1.4判断指定的内容是否存在的Logic标签及应用实例

1、概述

1)判断指定的变量是否为null或者为空字符串“”

2)判断指定的变量是否不为null并且不是空字符串“”

3)判断指定的消息是否存在

4)判断指定的消息是否不存在

5)判断指定的安全角色、用户、Cookie、HTTP请求Header或者JavaBean是否存在

6)判断指定的安全角色、用户、Cookie、HTTP请求Header或者JavaBean是否不

存在

2、典型应用例一

<%

request.setAttribute("emptyString", "");

%>

The variable named emptyString is empty!

上面的代码先定义一个字符串变量emptyString,它是空字符串。然后再利用标签来判断字符串变量emptyString是否为空字符串。本例的判断结果为true。

3、典型应用例二

标签主要实现识别指定的对象是否存在。主要有如下的属性:

1)cookie属性:判断指定的cookie是否存在

2)header属性:判断指定名称的HTTP请求Header是否存在

3)role属性:判断当前通过权限验证的用户是否具有指定的安全角色,如果存在多个安全角色则以

“,”分隔。

4)user属性:判断当前通过权限验证的用户是否拥有指定的用户名称

5)parameter属性:判断指定的请求参数是否存在

6)name属性:判断指定的JavaBean是否存在

7)同时设置name和property属性:name属性指定JavaBean,property属性指定JavaBean中的某个

属性,判断这个属性是否存在并且是否为null。

例1:

Both noSuchBean and noSuchProperty exist!

例2:下面的buyBookCart为一个Vector类型的集合

例3:

判断名称为"user-agent"的HTTP请求header是否存在

4、典型应用例三

判断在request范围内是否存在指定的ActionMessage或者其子类ActionErrors 对象,以及在ActionMessage对象中是否存在特定的错误消息。

判断在request范围内是否存在指定的ActionMessage或者其子类ActionErrors对象,以及在ActionMessage对象中是否不存在特定的消息。

<%

ActionErrors errors = new ActionErrors();

errors.add("totallylost", new ActionMessage("application.totally.lost"));

request.setAttribute(Globals.ERROR_KEY, errors);

request.setAttribute("myerrors", errors);

%>

下面以上面的代码为例来说明各个属性下的不同效果

●未设置name、message和property属性

Yes, there are errors.

默认情况下,该标签从request范围内检索属性key为Globals.ERROR_KEY的ActionMessages对象,其判断结果如果为true,将执行标签主体的内容。

●设置name属性

Yes, there are errors in myerrors collection.

该标签从request范围内检索属性key为myerrors的ActionMessages对象,其判断结果如果为true,将执行标签主体的内容。

●设置message属性

There are no normal messages.

由于设置了message="true",因此该标签从request范围内检索属性key为Globals.MESSAGE_KEY的ActionMessages对象,由于本例中不存在该名称的ActionMessages对象,其判断结果为true,将执行标签主体的内容。

●设置property属性,但它指定的消息key不存在

There is no error named "SuchError".

该标签从request范围内检索属性key为Globals.ERROR_KEY的ActionMessages对象,然后再从ActionMessages对象中检索消息key为“noSuchError”的消息。由于本例的前面的代码中不存在该名称的ActionMessages对象,其判断结果为true,将执行标签主体的内容。

●设置property属性,但它指定的消息key存在

There is an error named "totallylost".

该标签从request范围内检索属性key为Globals.ERROR_KEY的ActionMessages对象,然后再从ActionMessages对象中检索消息key为“totallylost”的消息。由于本例的前面的代码中存在该名称的ActionMessages对象,其判断结果为true,将执行标签主体的内容。

1.1.5进行循环遍历的Logic标签及应用实例

1、标签

是logic标签库中最复杂的也是用途比较广的一个标签,主要用来处理在页面上输出集合类。也即它能够在一个循环内遍历数组、Collection、Enumeration、Iterator或者Map中的所有元素。

2、有三种方法可以定义这个集合

1)使用运行时间表达式来返回一个属性集合的集合

2)将集合定义为bean,并且使用name属性指定存储属性的名称。

3)使用name属性定义一个bean,并且使用property属性定义一个返回集合的bean属性。

当前元素的集合会被定义为一个页作用域的bean。属性如下,所有这些属性都能使用运行时表达式。

3、遍历集合

标签中的name属性指定需要进行遍历的集合对象,它每次从集合中检索出一个元素,然后把它存放在page范围内并以id属性指定的字符串来命名这个元素。

例1:下面是实现显示输出Vector集合中的各个元素的值

<%

Vector animals=new Vector();

animals.addElement("Dog");

animals.addElement("Cat");

animals.addElement("Bird");

animals.addElement("Chick");

request.setAttribute("Animals", animals);

%>


上面的代码定义了一个Vector类型的集合变量animals,并它存放在request范围内并命名为Animals。然后利用标签在一个循环中遍历Animals集合中的所有元素,每次检索到一个元素就命名为“element”并存放在page范围内,然后利用标签输出集合中的每个元素的值。

if (loginResult)

{

Vector oneVector=new Vector();

oneVector.add("yang");

oneVector.add("zhang");

oneVector.add("Li");

oneVector.add("wang");

request.setAttribute("allUserName",oneVector);

return (mapping.findForward("loginSuccess"));

}

例2:下面是NetBook项目中的显示购物篮中的商品信息的标签(其中的buyBookCart为保存到session中的一个Vector类型的集合对象)

在Action类中产生出下面的代码

Vector oneVector=new Vector();

UserInfoVO oneUserInfoVO=new UserInfoVO();

oneUserInfoVO.setUserName("yang");

oneUserInfoVO.setUserPassWord("1234");

oneVector.add(oneUserInfoVO);

oneUserInfoVO=new UserInfoVO();

oneUserInfoVO.setUserName("zhang");

oneUserInfoVO.setUserPassWord("4567");

oneVector.add(oneUserInfoVO);

oneUserInfoVO=new UserInfoVO();

oneUserInfoVO.setUserName("wang");

oneUserInfoVO.setUserPassWord("abcd");

oneVector.add(oneUserInfoVO);

request.setAttribute("allUserName",oneVector);

return (mapping.findForward("loginSuccess"));

在目标页面中显示

UserName UserPassWord

将显示输出下面的内容

4、遍历集合时指定length属性和offset属性(从而可以实现快速分页显示)

通过指定length属性来说明需要遍历的元素的数目,如果没有设置length属性,就遍历集合中的所有元素。

offset属性指定开始遍历元素的开始位置,默认值为“0”并且表示从集合的第一个元素开始遍历。

indexID属性定义一个代表当前被遍历元素序号的变量,这个变量被存放在page范围内,可以被访问。

.

上面的代码表示只需要遍历Animals集合中的两个元素,offset为1,表示将从animals集合中的第二个元素开始遍历。其内的两个标签分别输出每个元素的序号和内容。

5、遍历Map集合

<%

HashMap months = new HashMap();

months.put("Jan.", "January");

months.put("Feb.", "February");

months.put("Mar.", "March");

request.setAttribute("months", months);

%>

.

:


上面的三个标签分别输出每个元素的序号、key和value。

6、遍历Map集合中的嵌套元素

对于嵌套的集合,则应该采用嵌套的标签来遍历集合中的所有元素<%

HashMap h = new HashMap();

String vegetables[] = {"pepper", "cucumber"};

String fruits[] = {"apple","orange","banana","cherry","watermelon"};

String flowers[] = {"chrysanthemum","rose"};

String trees[]={"willow"};

h.put("Vegetables", vegetables);

h.put("Fruits", fruits);

h.put("Flowers", flowers);

h.put("Trees",trees);

request.setAttribute("catalog", h);

%>

.

-----

内层的标签访问每个元素的value属性。设置collection属性,它指定一个运行时的表达式,表达式的运算结果为需要遍历的集合或者Map。


1.1.6进行请求转发或者重定向的Logic标签

1、转发标签

标记能够将响应转发给重定向到特定的全局ActionForward上。ActionForward的类型决定了是使用PageContext转发响应,还是使用sendRedirect将响应进行重定向。此标记只有一个”name”属性,用来指定全局ActionForward的名称,例如:

而如果采用Java脚本,则为:

String targetURI="/NetShop/info1.htm";

RequestDispatcher dispatch =request.getRequestDispatcher(targetURI);

dispatch.forward(request, response);

2、重定向标签

标记是一个能够执行HTTP重定向的强大工具。根据指定的不同属性,它能够通过不同的方式实现重定向。它还允许开发人员指定重定向URL的查询参数。属性如下:

3、应用示例

(1)进行请求转发,其name属性指定转发的目标,与Struts配置文件中的元素中的子元素匹配。

(2)进行请求重定向

其forward、href和page属性指定重定向的目标,它们的用法与前面的类似。

而如果采用Java脚本,则为:

response.sendRedirect("https://www.360docs.net/doc/6014766631.html,");

1.1.7Logic标签的应用示例

1、应用的需求

(1)用户没有登陆系统时,只提供基本的菜单

(2)用户登陆系统后,并识别是否为前台用户

(3)用户登陆系统后,并识别是否为后台管理员用户

2、利用Java脚本

<%

if(session.getAttribute("oneUserInfoVO")!=null) //已经登陆吗

{

%>

注销 |

修改|

信息 |

<%

UserInfoVO oneUserInfoVO=(UserInfoVO)session.getAttribute("oneUserInfoVO");

if((oneUserInfoVO.getType_User_Admin()).intValue()==2) //是后台管理员?

{

%>

后台管理 | <%

}

}

else

{

%>

注册|

登录 |

<%

}

%>

3、利用Logic标签

注册|

登录 |

注销 |

修改|

信息 |

Struts2学习之二--Struts2标签介绍

Struts2学习之二--Struts2标签介绍 热12已有 14625 次阅读 2009-07-12 18:53 [顶]3G移动--Android开发工程师全能班 (转) Struts2学习之二--Struts2标签介绍 在上一篇文章《为Struts 2.0做好准备》中,我过于详细地介绍了Struts 2.0开发环境和运行环境的配置,所以,本文很少涉及的以上两方面的细节。如果,您看完《为Struts 2.0做好准备》后,还有什么不明白,或者没法运行文中例子,请联系我。我的E-MAIL:Max.M.Yuan@https://www.360docs.net/doc/6014766631.html,。 在介绍常用标志前,我想先从总体上,对Struts 1.x与Struts 2.0的标志库(Tag Library)作比较。 分类将标志库按功能 分成HTML、Tiles、 Logic和Bean等 几部分 严格上来说,没有分类,所有标志都在URI 为“/struts-tags”命名空间下,不过, 我们可以从功能上将其分为两大类:非UI 标志和UI标志 表达式语言(expression languages)不支持嵌入语言 (EL) OGNL、JSTL、Groovy和Velcity 以上表格,纯属个人总结,如有所不足或错误,请不吝指正 好了,我要开始介绍“常用”(这里所谓的“常用”,是指在已往工作中使用Struts里经常用到的)的标志了。 1.非UI标志 o if、elseif和else 描述: 执行基本的条件流转。

参数: 名称必 需 默 认 类型描述备注 test 是Boolean 决定标志里内容是否 显示的表达式 else标志 没有这个 参数 id 否Object/String 用来标识元素的id。在UI和表单中为HTML的id属性 例子: <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> Condition Flow

Condition Flow

" /> Max's file here Scott's file here

Strus2标签库

Strus2标签库 Struts2提供了一套标签库用于简化JSP层的编程,开发者只需要标签中做少量的设置,就可以实现各种常用的效果。Struts2的标签与Action联系比较紧密,使用标签后,Struts会自动完成JSP层的显示数据、在Action层采集数据等工作。 Struts2的标签都统一包含在struts-tags.tld文件中(位于struts2-core-2.2.1.jar中),使用统一前缀。 Struts标签库大致分为: UI标签:包括表单标签,非表单标签 非UI标签:流程控制标签,数据访问标签 首先要在JSP中使用taglib编译指令导入标签库,然后才可以使用标签。 <%@taglib prefix="s" uri="/struts-tags"%> 以上代码用于导入Struts2标签库,其中URI就是对应web.xml文件中指定的标签库的URI,而prefix属性值是该标签库的前缀。 第1节OGNL语言 OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。 OGNL语法类似于EL,主要使用.作为操作符,例如要访问person.getCountry().getName()可以这样写:https://www.360docs.net/doc/6014766631.html,。 1.1 OGNL的常用符号 主要是#号,其作用有三种: 1. 访问OGNL上下文与ActionContext资源,相当于ActionContext.getContext(), 常用#属性如下表: parameters: 相当于:request.getParameter("userName");

struts2复习题(含答案)

Struts2复习题 1.以下属于struts2的控制器组件是: 2.以下属于struts2的体系结构的是:(多选) 控制器组件配置文件 3.以下属于struts2配置文件中的配置元素是:(多选) A. B. C. D. 4.关于struts1和struts2对比的说法正确的是: 要求Action类继承struts1框架中的Action父类,struts2中则不一定需要继承,可以是POJO 类 中的Action不是线程安全的,而struts2中的Action是线程安全的 和struts2中都使用ActionForm对象封装用户的请求数据 使用OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值 5.以下关于ValueStack说法正确的是:(多选) A.每个Action对象实例拥有一个ValueStack对象 B.每个Action对象实例拥有多个ValueStack对象 中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中 会在请求开始时被创建,请求结束时消亡 6.关于struts2配置文件说法正确的是: A.必须在WEB-INF/classes目录下 B.名字必须为 C.配置Action时,必须配置包信息 D.使用元素配置转发 7.在struts2配置中用()元素来配置常量: A. B. C. D. 8.关于struts2包的说法正确的是: 框架使用包来管理常量 框架定义包时必须指定name属性 框架中配置包时,必须继承自struts-default包,否则会报错 框架中使用包来管理Action 9.struts2中获取Servlet API的方法正确的是:(多选) A.使用ActionContext对象以解耦合的方法访问Servlet API B.使用ServletActionContext对象以解耦合的方式访问Servlet API C.使用ActionContext对象以耦合的方式访问Servlet API D.使用ServletActionContext对象以耦合的方式访问Servlet API 10.struts2动态调用的格式为: ! 11.如果要实现struts2的数据校验功能 A.普通Action类可以实现 B.继承自Action接口可以实现 C.继承自ActionSupport类可以实现 D.继承自ActionValidate类可以实现

struts2标签使用实例

Struts2中数据标签使用示例 S truts2提供了大量丰富的标签供使用,它不再像S truts1中一样,将种类标签进行分门列别,但可以根据其使用的用途用以区别。本文通过对S truts2中数据标签的学习,来对S truts2中标签的学习起到一个抛砖引玉的作用。 文中将介绍Action标签、Bean标签、Data标签、Include标签、P aram标签、Set标签、T ext标签、P roperty 标签等标签。 代码下载:https://www.360docs.net/doc/6014766631.html,/y1ps2Mjpc3NiLKuetMOpCsZOOypD6KSdo8-46Zy2wpoMcABeo4vOC NJXtWDEO93-TXgZogwAF YxSOni5BEG2EoN65OFwHdG71v-/St ruts2DataTags.rar?download 一、标签 Action标签,顾名思义,是用来调用Action的标签,在JSP中页面中,可以指向具体指定某一命名空间中的某一Action。而标签的主体用于显示及渲染Actionr的处理结果。 1.WebRoot\pages\dataTagssuccess.jsp处理页面 <%@ page contentType="text/htm l; charset=GBK" %> <%@ taglib prefix="s" uri="/struts-tags" %> Action Tag 示例

Action Tag 示例

s:action标签用于在页面显示结果.
这里使用标签进行页面跳转,并用于显示处理的结果。 2.先来看st ruts.xml中的配置: /pages/dataTags/success.jsp

struts2标签和OGNL表达式

1.OGNL表达式语言 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 Struts 2框架使用OGNL作为默认的表达式语言。 相对EL表达式,它提供了平时我们需要的一些功能,如: 支持对象方法调用,如xxx.sayHello(); 支持类静态方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名],例如:@https://www.360docs.net/doc/6014766631.html,ng.String@format('foo %s', 'bar')或 @cn.itcast.Constant@APP_NAME; 操作集合对象。 Ognl 有一个上下文(Context)概念,说白了上下文就是一个MAP结构,它实现了java.utils.Map接口,在Struts2中上下文(Context)的实现为ActionContext,下面是上下文(Context)的结构示意图 2.访问上下文(Context)中的对象需要使用#符号标注命名空间,如 #application、#session 另外OGNL会设定一个根对象(root对象),在Struts2中根对象就是ValueStack (值栈)。如果要访问根对象(即ValueStack)中对象的属性,则可以省略#命名空间,直接访问该对象的属性即可。 在struts2中,根对象ValueStack的实现类为OgnlValueStack,该对象不是我们想像的只存放单个值,而是存放一组对象。在OgnlValueStack类里有一个List 类型的root变量,就是使用他存放一组对象 |--request |--application context ------|--OgnlValueStack root变量[action, OgnlUtil, ... ] |--session |--attr |--parameters 在root变量中处于第一位的对象叫栈顶对象。通常我们在OGNL表达式里直接写上属性的名称即可访问root变量里对象的属性,搜索顺序是从栈顶对象开始寻找,如果栈顶对象不存在该属性,就会从第二个对象寻找,如果没有找到就从第三个对象寻找,依次往下访问,直到找到为止。 大家注意: Struts2中,OGNL表达式需要配合Struts标签才可以使用。如: 3.由于ValueStack(值栈)是Struts 2中OGNL的根对象,如果用户需要访问值栈中的对象,在JSP页面可以直接通过下面的EL表达式访问ValueStack(值栈)中对象的属性: ${foo} //获得值栈中某个对象的foo属性

Struts2标签使用

Struts2标签使用 (1): ---- 文本输入框 使用: (2): ----- 文本域输入框 使用: (3): ----- 密码输入框 使用: 前三个基本都是一样的。如果是要显示值的话可以这样:value = “实体Bean。Get***()”。 (4): ---- 单选按钮 使用:其中list 属性是必须要有的。 <1>:第一种方式:list = “#{‘male’:’男’,’female’:’女’}”

<2>:第二中方式:list = “#request/session.list”。 ---- 与action 结合起来了。 如果要默认选中的话后面加上value = “”.也可以通过javascript 的方式来默认选中。 (5): --- url连接 --- 超链接 这两个标签一般结合起来来使用。 使用: (6): --- 获取相应form的值 使用: <1>:

史上最全的struts2标签

a a标签创建一个HTML超链接,等价于HTML 的登陆 更多 a 信息 action 使用action标签可以允许在JSP页面中直接调用Action。 范例如下: 更多 action 信息 actionerror 这个标签负责输出错误信息到客户端。 示范代码: Action代码如下: public String execute() { addActionError("第一条错误消息!"); addActionError("第二条错误消息!"); return SUCCESS; }.... JSP中: 更多 actionerror 信息 actionmessage

这个标签负责输出提示信息到客户端,例子如下: Action代码如下: public String execute() { addActionMessage("第一条普通消息!"); addActionMessage("第二条普通消息!"); return SUCCESS; } JSP: 更多 actionmessage 信息 append 用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。例子: 更多 append 信息 bean bean标签用于创建一个JavaBean的实例。 示范样例: 更多 bean 信息

struts标签说明

常用Struts标签的使用说明 Struts Html标签库 1,:生成HTML

元素,action属性用来指定用户提交表单后,处理用户请求的组建。Struts 框架将参照struts配置文件来查找相应的action组建。在struts-config.xml 文件中 1, 与user.do对应得代码是: 2,:生成HTML标签的property属性指定字段的名字,对应ActionForm bean中的一个属性,代码如下: 的对应的userForm bean属性 private String login_Name; public String getLogin_Name() { return login_Name; } public void setLogin_Name(String login_Name) { this.login_Name = login_Name; } 3,:生成HTML标签,使用方法与相同。 启用 停用 4,:生成HTML 5.在JSP页面中可以通过Struts 2提供的___D________标签来输出国际化信息。D A. B. C. D. 6.资源文件的后缀名为____D_______。D

struts2复习模拟题

填空: 1.Struts 2以__过滤器__为核心,采用__拦截器__的机制来处理用户的请求。 2.构建Struts 2应用的最基础的几个类库是_struts2-core__、_commons-logging_、_xwork-core_、__freamarker___以及_ognl_。 3.Struts 2中的控制器类是一个普通的_POJO_。 4.如果要在JSP页面中使用Struts 2提供的标签库,首先必须在页面中使用taglib编译指令导入标签库,其中taglib编译指令为_____<%@ taglib prefix=”s” uri=”strut-tags”%>______。5.在Struts 2表单标签库中,表单标签为__________。 6.ActionSupport类实现了__action_________接口和___validateable________等接口。7.通过控制器类中的____validate()_______方法来输出校验错误信息。 8. 在Hibernate XML影射文件中描述主键生成机制,其属性描述了主键的生成策略,至少写出三种策略名 increment 、 native 、 uuid 。 9. 在Hibernate中级联操作的属性值至少写出三个____none_______ 、_____save-update______、____all_______。 10 Hibernate的会话接口是 ______Session接口_____,它由接口 __SessionFactory接口__创建;Hibernate处理事务的接口是____Transaction接口_______;封装HQL的接口是_____Criteria接口______ 。 11.Struts2框架由_____ Struts ______和______ WebWork _____框架发展而来。 12.Struts2中的控制器类是一个普通的____Class_______。 13.注入资源的注释是____@Resource ___

马士兵struts2学习笔记(详细版)

1、02_尚学堂马士兵_Struts2_Struts2_HelloWorld_2.avi 指定Tomcat的目录,指定JDK搭建开发环境(拷贝jar包,复制struts.xml 文件此文件不要放在WEB-INF下面,应该放到src下面),在web.xml文件中: struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAn dExecuteFilter struts2 /* 其中/* 不要写/*.do 或者 /*.action约定俗成用/* 2、04_尚学堂马士兵_Struts2_Struts2_HelloWorld_3.avi (1) action -->相应的处理类或页面 --> /Hello.jsp (2)struts.xml不自动提示的解决办法: window--perferences-XML catalog---add---key Type="URI" key="*.dtd" 3、09_尚学堂马士兵_Struts2_Struts2_HelloWorld_7_2.avi struts2的执行流程: 当用户在浏览器中敲入要访问的地址的时候,浏览器会将这个请求发送给

struts标签库

Struts1之HTML标签库详解1 2010-05-09 15:19 Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。 标签的公共特征 使用固定属性名称的Struts 标签: Struts 标签也支持嵌套引用,例如: 虽然Struts 标签的设计原意是为了避免使用scriptlet,scriptlet的表达式还能够提供给所有的Struts 标签使用。但请确保使用完整的表达式: Html 标签库 1.标签 它有两个属性:locale和xhtml,两者都不是必需的。 2.说明:生成的结果取决于Struts应用程序所位于的服务器的locale。如果你将应用程序部署到一个

不同locale的服务器,你不需要改变代码,Locale会自动调整。 3.标签:表示所包含页面的绝对位置。这个标签只有内嵌在head标签中才有效。 4.标签 最重要的属性page:图象文件的路径,前面必须带有一个斜线。 其它属性:heignt、width、alt。 5.标签 6.标签:通过一个简单的标签,你就可以在一个JSP页面上显示完全自定义的错误信息。功能超强大!! 说明:这个标签在Request对象的属性集合中查找reserved key。如果它找到一个reserved key,它就假设这个key是一个String、或是一个String数组 (它包含在模块的MessageResources中查找的message keys)、或是类型为 org.apache.struts.action.ActionErrors的一个对象。 如果在应用程序资源中存在相应的信息,那么就可以用下面这些可选的message keys: · errors.header or errors.prefix:相应的信息在错误信息的单独列表前显示。 · errors.footer or errors.suffix:相应的信息在错误信息的单独列表后显示。 7.标签系列 使用标签时必须遵循一些规则: 1.标签中必须包含一个action属性,它是这个标签中唯一必需的属性。如果不具备该属性则JSP页面会抛出一个异常。之后你必须给这个action属性指定一个有效值。一个有效值是指应用程序的Struts配置文件中元素里的任何一个子元素的访问路径。而且相应的元素中必须有一个name属性,它的值是form bean的名称。

struts2(checkbox_radio_select)表单标签的应用及详细事例

一、表单标签_checkbox复选框 如果集合为list 生成如下html代码: ************************************************ *****
如果集合为MAP

listKey="key"listValue="value" value="{1,2,3}"/> 生成如下html代码: ************************************************ ******
如果集合里存放的是javabean(id和name为Person的属性) <% Person person1 = new Person(1, "第一个"); Person person2 = new Person(2, "第二个"); List list = new ArrayList(); list.add(person1); list.add(person2); request.setAttribute("persons", list); %> 生成如下html代码:

Struts2的AJax标签

11.6 常用的Ajax标签 struts2为了简化Ajax过程,提供了一些常用的Ajax标签。可以满足一般的Ajax需求,对于一些更为复杂的Ajax通信过程,我们可以使用后加的JSON插件来实现。 11.6.1 div标签 div标签在页面上生成一个Div元素,但这个Div元素的内容不是静态内容,而是从服务器获取的内容。为了让该div标签能取得服务器的数据,必须为该div标签指定一个(1)href属性,这个属性必须是一个Action,该Action负责生成该Div元素的内容。 --------------------------------------------------------------------------------------------------------------------------------------------- 提示:因为div标签是一个Ajax标签,因此应为该标签增加theme=“ajax”属性。 --------------------------------------------------------------------------------------------------------------------------------------------- 还可以指定该div标签生成的Div元素以固定的频率来更新自身的内容,为了指定更新频率和更新延迟,可以指定如下两个属性: (2) updateFreq:指定更新Div内容的时间间隔,单位是ms。如果不指定该属性,则只在页面加载时更新该Div的内容。 (3)delay:指定更新Div内容的时间延迟,单位是ms。如果不指定,且指定了updateFreq 属性,则页面加载后立即开始计时,准备刷新该Div的内容。如果没有指定updateFreq属性,则该属性没有任何意义。 如果服务器的响应包含了JavaScript代码,且希望在本页面内执行服务器响应的JavaScript 代码,则可以为该div标签指定(4)executeScripts=“true”。 看下面的页面代码: <%@ page contentType="text/html;charset=GBK" language="java" %> < %@ taglib prefix="s" uri="/struts-tags" %> < html> < head> < title>远程Div < s:head theme="ajax" /> < /head> < body> 仅一次获取服务器内容的Div 初始化文本 动态更新内容的Div,每隔1s刷新一次(通过指定updateFreq=“1000”)
上一页 下一页 二、s:checkboxlist标签 简介 Checkboxlist标签可以一次创建多个复选框,用于一次生成多个HTML标签中的,它根据list 属性指定的集合来生成多个复选框。 1. jsp代码 listKey:该属性指定集合元素中某个属性作为复选框的value. listV alue: 该属性指定集合元素中某个属性作为复选框的标签。 三、使用s:combobox生成下拉输入框 简介 Combobox标签生成一个单行文本框和下拉列表框的组合,但两个表单元素只对应一个请求参数,只有单行文本框里的值才包含请求参数,而下拉列表框则只是用于辅助输入,并没有name,也不会产生请求参数。使用该标签,需要指定一个list属性,该list属性指定的集合将用于生成列表项。 1. Jsp代码

相关主题
相关文档
最新文档