struts标签说明
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@。
在介绍常用标志前,我想先从总体上,对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" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Condition Flow</title></head><body><h3>Condition Flow</h3><!--这里有点小技巧:本来可以用#[0]来获得,请求中name的值。
Struts2中的s标签 API Java Struts 程序开发

B:
1. <s:bean name=""></s:bean>-----类似于struts1.x中的,JavaBean的值
C:
R:
1.
2. <s:radio list=""></s:radio>-----单选按钮
3. <s:reset></s:reset>-----重置按钮
S:
1. <s:select list=""></s:select>-----单选框
2. <s:set name=""></s:set>-----赋予变量一个特定范围内的值
4. <s:iterator></s:iterator>-----用于遍历集合
L:
1. <s:label></s:label>-----只读的标签
M:
1. <s:merge></s:merge>-----合并遍历集合出来的值
O:
数据标签:
action:直接调用一个Action,根据executeResult参数,可以将Action的处理结果包含到页面中。
bean:创建一个JavaBean实例。。
date:格式化输出一个日期属性。
debug:生成一个调试链接,当单击该链接时,可以看到当前栈值中的内容。
Struts2标签使用

Struts2标签使用(1):<s:textfield> ---- 文本输入框使用:<s:textfield name=”实体Bean。
属性”></s:textfield>(2):<s:textarea> ----- 文本域输入框使用:<s:textarea name=”实体Bean。
属性”></s:textarea>(3):<s:password> ----- 密码输入框使用:<s:password name=”实体Bean。
属性”></s:password>前三个基本都是一样的。
如果是要显示值的话可以这样:value = “实体Bean。
Get***()”。
(4):<s:radio list=””> ---- 单选按钮使用:<s:radio list=””>其中list 属性是必须要有的。
<1>:第一种方式:list = “#{‘male’:’男’,’female’:’女’}”<2>:第二中方式:list = “#request/session.list”。
---- 与action 结合起来了。
如果要默认选中的话后面加上value = “”.也可以通过javascript 的方式来默认选中。
(5):<s:url/> --- url连接<s:a/> --- 超链接这两个标签一般结合起来来使用。
使用:<s:url id = “id” action = “userAction”/><s:a href=”%{id}”/>(6):<s:form/> --- 获取相应form的值使用:<1>:<s:form action = “userAction”><2>:<s:url id=”userId” action = “userAction”> -- 定义了一个userId的指向userActionde 路径<s:form action=”%{userId}”>(7):<s:submit/> ---- 提交标签(8):<s:reset/> ---- 重置标签(9):<s:hidden/> ---- 隐藏域标签使用:<s:hidden name=”实体Bean。
struts 标签logiciterate用法详解用法详解

<logic:iterate> 是Logic 标签库中最复杂的标签,也是用途最广的一个标签,它能够在一个循环中遍历数组、Collection、Enumeration、Iterator 或Map 中的所有元素。
1. 遍历集合<logic:iterate> 的name 属性指定需要进行遍历的集合对象, 它每次从集合中检索出一个元素, 然后把它放在page 范围内, 并以id 属性指定的字符串来命名这个元素, 例如:<%Vector animals = new Vector();animals.addElement("Dog");animals.addElement("Cat");animals.addElement("Bird");animals.addElement("Chick");request.setAttribute("Animals", animals);%><logic:iterate id="element" name="Animals"><bean:write name="element"/><br></logic:iterate>以上代码先定义了一个Vector 类型的集合变量Animals, 它存放在request 范围内. 接下来<logic:iterate> 标签在一个循环中遍历Animals 集合(这个集合名就是在标签中的nam e 属性的值)中所有元素, 每次检索到一个元素, 就把它命名为"element"(标签id 属性的值), 并存放在page 范围内.在<logic:iterate> 中, 还嵌套了一个<bean:write>标签, 它用于输出每个元素的内容. 以上代码的输出内容如下:DogCatBirdChicklength 属性指定需要遍历的元素的数目, 如果没有设置length 属性, 就遍历集合中的所有元素.offset 属性指定开始遍历的起始位置, 默认值为"0" , 表示从集合的第一个元素开始遍历.indexId 属性定义一个代表当前遍历元素序号的变量, 这个变量被存放在page 范围内,可以被标签主体的<bean:write> 标签访问. 例如:<logic:iterateid="element" // 指定输出元素的名与<bean:write> 中name 属性一致indexId="index" // 遍历元素序号的变量, 这个变量放在page 范围内name="Animals" // request 中的集合名, 从中取循环取出元素offset="1" // 从集合的第2 条记录开始取数length="2"> // 取出2 个元素<bean:write name="index"/>. // 输出每个元素的序号, 与indexId 的属性一致<bean:write name="element"/><br> // 输出每个元素的内容, 与id 的属性一致</logic:iterate>2. 遍历Map<logic:iterate> 标签还可以遍历HashMap 中的元素, 例如:<%HashMap months = new HashMap();months.put("Jan","January");months.put("Feb","February");months.put("Mar","March");request.setAttribute("month", months);%><logic:iterate id="element" indexId="ind" name="months"><bean:write name="ind"/>. // 序号<bean:write name="element" property="key"/>: // 键名<bean:write name="element" property="value"/> // 键值</logic:iterate>以上代码先定义一个名为"months" 的HashMap, 存放在request 范围内. 接下来在<log ic:iterate> 标签遍历months 对象的每一个元素, 每一个元素包含一对key/value . 在<lo gic:iterate> 标签主体中包含三个<bean:write> 标签, 分别输出每个元素的序号、key 和value. 以上代码的输出内容如下:0.Mar: March1.Feb: February2.Jan: January如果HashMap 中的每个元素的value 是集合对象, 则可以采用嵌套的<logic:iterate>标签遍历集合中的所有对象, 例如:<%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);%><logic:iterate id="element" // 与<bean:write> 中的name 属性对应, 输出内容indexId="ind" // 与<bean:write> 中的name 属性对应, 输出序号name="catelog"> // 指定输出元素的名称<bean:write name="ind"/>. // 输出序号<bean:write name="element" // 与<logic:iterate>中id 属性对应property="key"/> // 集合中的键名<logic:iterateid="elementValue" // 与<bean:write> 中的name 属性对应name="element" // 指定输出元素的名称property="value" // 集合中的键值length="3" // 取3 个元素offset="1"> // 从第2 个位置取-------<bean:write name="elementValue"/></logic:iterate></logic:iterate>以上代码先定义一个名为"catelog" 的HashMap , 存放在request 范围内, 它的每个元素的value 为字符串数组.接下来外层的<logic:iterate>标签遍历HashMap 中的所有元素, 内层的<logic:iterate>标签访问每个元素的value 属性, 遍历value 属性引用的字符串数组中的所有元素.3. 设置被遍历的变量可以通过以下方式来设置需要遍历的变量(1) 设置name 属性, name 属性指定需要遍历的集合或Map, 例如:<logic:iterate id="element" name="Animals"><bean:write name="element"/></logic:iterate>(2) 设置name 属性和property 属性, name 属性指定一个JavaBean, property 属性指定JavaBean 的一个属性, 这个属性为需要遍历的集合或Map, 例如:<logic:iterate id="element" indexId="ind" name="catelog"><bean:write name="ind"/><bean:write name="element" property="key"/><logic:iterate id="elementValue" name="element" property="value" len gth="3" offset="1">--------<bean:write name="elementValue"/></logic:iterate></logic:iterate>(3) 设置collection 属性, collection 属性指定一个运行时表达式, 表达式的运算结果为需要遍历的集合或Map, 例如:<logic:iterate id="header" collection"<%=request.getHeaderNames()%>"> <bean:write name="header"/></logic:iterate>4. 读取JavaBean 中的数据(1) 在Jsp 页面中加入JavaBean 如:<jsp:useBean id="articleClasses" class="com.GetArticleClasses"/>上面这个JavaBean 要求必须存在一个集合数组对象,如Vector,Collection,ArrayList 等;在这个JavaBean 的构造函数中,取得数据库中的数据,并将其存入数组对象中。
struts2的select标签显示默认值问题总结

今天做订单模板管理中的修改模板功能时,需要将模板中的某些信息从数据库里取出并添加显示到页面上的下拉框里面。
因为需要默认显示之前保存过的信息,所以涉及到一个下拉框默认取值的问题。
之前了解过struts提供的<s:select>标签能根据一个list集合动态生成下拉框选项,所以使用了<s:select>来取值,但是struts2设计的一个让人十分无语的对应关系直接浪费了我一下午的时间。
首先,简单介绍下<s:select>标签的用法。
1.第一个例子:<s:select list="{'aa','bb','cc'}" theme="simple" headerKey="00" headerValue="00"></s:select> 2..第二个例子:<s:select list="#{1:'aa',2:'bb',3:'cc'}" label="abc" listKey="key"listValue="value" headerKey="0" headerValue="aabb">3..第三个例子:<%java.util.HashMap map = new java.util.LinkedHashMap();map.put(1,"aaa");map.put(2,"bbb");map.put(3,"ccc");request.setAttribute("map",map);request.setAttribute("aa","2");%><s:select list="#request.map" label="abc" listKey="key" listValue="value"value="#request.aa" headerKey="0" headerValue="aabb"></s:select>headerKey headerValue 为设置缺省值这是网上找到的三个简单的例子,相信通过这三个例子已经大致可以了解<s:select>的用法,下面我将结合具体工作中出现的问题,重点介绍<s:select>如何设置有默认选中项的方法。
详解struts1的配置文件

1.<Data-sources>:用来配置数据源,连接数据库。
<data-source>:具体是数据库连接。
Type:type="org.apache.dbcp.BasicDataSource" Struts中连接数据库的类。
<set-property>:此标签中配置具体的链接内容。
如:<set-property property="driverClassName" value="com.mysql.jdbc.Driver" /> 数据库驱动<set-property property="url" value="jdbc:mysql://localhost:3306/exam" />数据库地址。
<set-property property="username" value="root" />数据库登录名。
<set-property property="password" value="root" />数据库密码。
<set-property property="autoCommit" value="true" />自动提交。
<set-property property="maxActive" value="10" />最大连接数。
<set-property property="maxWait" value="5000" />最大等待数。
<set-property property="defaultAutoCommit" value="false" />默认自动提交。
struts的循环标签

struts的循环标签摘要:1.Struts 循环标签概述2.Struts 循环标签的分类3.Struts 循环标签的基本语法4.Struts 循环标签的实例分析5.Struts 循环标签的注意事项正文:【Struts 循环标签概述】Struts 是一款流行的Java Web 框架,它提供了丰富的标签库以简化Web 开发的流程。
在Struts 中,循环标签是一种常用的标签,它可以帮助开发者轻松实现循环操作。
Struts 循环标签可以让我们在页面中反复显示相同的内容,或者根据某个条件来生成一系列的输出。
【Struts 循环标签的分类】Struts 循环标签主要分为两类:`<s:iterator>`和`<s:for>`。
这两种标签都可以实现循环操作,但它们的应用场景和语法略有不同。
1.`<s:iterator>`标签`<s:iterator>`标签主要用于迭代集合,如数组、List 或Set 等。
它可以将集合中的元素逐一输出,或者对集合中的元素进行遍历和操作。
2.`<s:for>`标签`<s:for>`标签主要用于循环某个范围,可以在指定的范围内生成一系列数字或字符串。
这种标签通常用于迭代数字序列,例如生成页码、迭代表格行等。
【Struts 循环标签的基本语法】以下是Struts 循环标签的基本语法:1.`<s:iterator>`标签```xml<s:iterator value="expression" var="variable"><!-- 标签体内容--></s:iterator>```其中,`value`属性表示迭代集合的表达式,`variable`属性表示迭代变量。
2.`<s:for>`标签```xml<s:for value="expression" var="variable"><!-- 标签体内容--></s:for>```其中,`value`属性表示循环范围的表达式,`variable`属性表示循环变量。
Struts标签bean:write用法

Struts标签bean:write⽤法bean:write相当于<%=request.getAttribute("something")%>例⼦⼀:某处设置了request.setAttribute("hello","hello world");则在某个jsp页⾯中,⽤struts的write标签取出并显⽰的⽅式如下:<bean:write name="hello"/>,则页⾯上显⽰出hello world。
bean:write常⽤的属性有如下⼏个:1。
name,⽤来指定属性的名字2。
filter,⽤来指定是否屏蔽到属性值的HTML格式3。
property,⽤来指定name所代表的对象的属性名字4。
format,⽤来指定显⽰的时间,数字,⽇期等的格式例⼦⼆:某处设置了request.setAttribute("bj","<font color='red>欢迎你</font>");则在某个jsp页⾯中,⽤struts的write标签取出并按红⾊的⽅式显⽰的⽅式如下:<bean:write name="bj" filter="false"/>,则页⾯上显⽰出红⾊的欢迎你。
如果filter属性不设置为false,则默认为true,那么显⽰出的内容就为<font color='red>欢迎你</font>。
例⼦三:某处设置了request.setAttribute("date",new Date());则在某个jsp页⾯中,⽤struts的write标签取出并按指定⽅式显⽰⽇期的⽅法如下:<bean:write name=“date”/>,此为默认的显⽰⽅法,显⽰出的时间为:Fri Mar 28 15:04:21 CST 2008<bean:write name=“date” format="yyyy-MM-dd HH:mm:ss"/>,此为⾃⼰指定⽇期的显⽰格式,显⽰出的时间为2008-3-28 15:04:21例⼦四:某处设置了request.setAttribute("n",“1223333.333”);则在某个jsp页⾯中,⽤struts的write标签取出并按指定⽅式显⽰数字的⽅法如下:<bean:write name=“n”/>,此为默认的显⽰⽅法,显⽰出的数字位1223333.333<bean:write name=“n” format="###,###.####"/>,此为⾃⼰指定数字的显⽰格式,显⽰出的时间为1,223,333.333如果希望⼩数点后的不⾜四位时,缺位补0,则应<bean:write name=“n” format="###,###.0000"/>,此为⾃⼰指定数字的显⽰格式,显⽰出的时间为1,223,333.3330例⼦五:假如有User类和Groupe类,User类有属性名字userName,年龄age,性别sex和所属的Groupe,Groupe类有属性组名groupeName,并均具有相应的get和set⽅法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用Struts标签的使用说明Struts Html标签库1,<html:form>:生成HTML<form>元素,action属性用来指定用户提交表单后,处理用户请求的组建。
Struts 框架将参照struts配置文件来查找相应的action组建。
在struts-config.xml 文件中1,<html:form action=”user.do”> 与user.do对应得代码是:<action parameter="method" name="userForm" path="/user" scope="request" validate="false">2,<html:text/>:生成HTML<input type=”text”>标签的property属性指定字段的名字,对应ActionForm bean中的一个属性,代码如下:<html:text property=”loginName”/> 的对应的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:radio/>:生成HTML<input type=”radio”>标签,使用方法与<html:text>相同。
<html:radio property=”isActive” value=”1”>启用</html:radio><html:radio property=”isActive” value=”0”>停用</html:radio>4,<html:select/>:生成HTML<select>标签。
它可以在表单上创建下拉列表或多选列表表。
在<html:select>可以包含多个<html:option/>,<html:options/>,<html:select>标签的基本形式如下:<html:select property=” countType_Id”><1 or more <html:option>,<html:options> tags></html:select>5,<html:option/>:生成HTML<option> ,这个标签被嵌套在<html:select>中,代表列表的一个选项,<html:option value=”11”>11</html:option>之间为文本内容,value表示值。
6,<html:options/>:生成一组HTML<option>,这个标签被嵌套在<html:select>中,代表一组<option>选项,代码如下:<html:options collection=”countList”property=”countType_Id”labelProperty=”countType_Name”> 其中collection属性指定存放可选项的集合,property对应集合对象中的一个属性,它指定可选项的实际值,labelproperty对应集合对象中的一个属性,它指定可选项的现实值。
7,<html:hidden/>:生成HTML<input type=”hidden”><html:hidden property=”ddd”value=”ddd”/> value表示标签的值。
property表示标签的名。
8,<html:password/> :生成HTML<input type=”password”><html:password property=”dddd” value=”ssss”> value表示标签的值。
property表示标签的名。
9,<html:checkbox/>:生成HTML<input type=”checkbox”><html:checkbox value=”aa” property=”dddd”>ddddd</html:checkbox>value表示标签的值。
<html:checkbox>之间的文本表示界面显示的值。
Strtus bean标签库1,<bean:write/>:显示JA V ABEAN或其属性的内容。
当只设置了name,属性表示输出已经存在的变量值。
<% String name=”ttt”;request.setAttribute(“name”,name);%><bean:write name=”name”/>当同时设置了name,property 表示输出已经存在的JA V ABEAN的某个属性的具体的值。
<% User user = new User();User.setLogin_Name(“ss”);Request.setAttribute(“userForm”,user);%><bean:write name=”userForm” property=”login_Name”/>2,<bean:define/>:定义一个变量。
设置value属性,此时Id属性定义的变量为字符类型,value属性代表这个变量的字符串值。
定义一个字符串变量:<bean:define id=”stringbean” value=”stringbean”/>相当于<% String stringBean=”stringbean” %>同时设置name和property属性。
Name属性指定一个已经存在的Bean, property属性指定已经存在的Bean的某个属性。
<bean:define id=”userbean” name=”userForm” property=”loginName”/>同时设置name和type属性,name属性指定已经存在的javabean,type属性表示这个JA V ABEAN的完整的类名。
<bean:define id=”userBean” name=”userForm” type=” er”/><bean:write name=”userBean” property=”login_Name”/>Struts logic标签库1, <logic:empty/>:判断指定的变量是否为NULL,或者是空字符串“”。
当设置了name,表示已经存在的变量<% String name=”ddd”;request.setAttribute(“name”,name);%><logic:empty name=”name”></logic:empty>当设置了name,property表示一个已经存在的JA V ABEAN中的某个属性。
<% User user = new User();user.setLogin_Name(“aaaa”);request.setAttribute(“name”,user);%><logic:empty name=”user” property=”login_Name”></logic:empty><logic:notEmpty/>:判断指定的变量是否不为NULL,或者不是空字符串“”。
它的使用与<logic:empty>相同2, <logic:present/>:判断指定的变量是否存在。
它的使用与<logic:empty>相同。
<logic:notPresent/> :判断指定的变量是否不存在,它的使用与<logic:empty>相同。
3,<logic:iterate/>:它是LOGIC标签库中最常用的标签,它能够在一个循环中遍历一个数组,Collection,Enumeration,Iterator的所有元素。
例子如下:当设置了name遍历list<% List list = new ArrayList();list.add(“aa”);list.add(“bb”);list.add(“cc”);request.setAttribute(“list”,list);%><logic:iterate id=”element” name=”list”><bean:write name=”element”/></logic:iterate>遍历数组<% String[] elements = new String[2];Elements[0] =”aa”;Elements[1] =”bb”;Request.setAttribute(“list”,elements);%><logic:iterate id=”element” name=”list”><bean:write name=”element”/></logic:iterate>当设置name和property的时候,表示遍历一个已经存在的javabeaN中的某个属性,该属性为一个集合或者数组,它的其他基本使用与<%List list = new ArrayList();User user1 = new User();user1.setLogin_Name(“aa”);list.add(user1);User user2 = new User();user2.setLogin_Name(“bb”);list.add(user2);request.setAttribute(“list”,list);%><logic:iterate id=”element” name=”list”><bean:write name=”element”/></logic:iterate>4,<logic:equal/>:比较变量是否等于指定的常量。