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⽅法。
STRUTS2标签中符号#,$,%的用法示例
#、%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分。
在这里笔者简单介绍它们的相应用途。
1.#符号的用途一般有三种。
1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。
实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttrib ute(”msg”) 。
2)用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。
3)用来构造Map,例如示例中的#{’foo1′:’bar1′, ’foo2′:’bar2′}。
2.%符号%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。
如下面的代码所示:构造Map<s:set name=”foobar” value=”#{’foo1′:’bar1′,‘foo2′:’bar2′}” /><p>The value of key “foo1″ is <s:property value=”#foobar['foo1']” /></p><p>不使用%:<s:url value=”#foobar['foo1']” /></p><p>使用%:<s:url value=”%{#foobar['foo1']}” /></p>3.$符号$符号主要有两个方面的用途。
在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间。
Struts标签htmlFile
文件上传标签<html:file>该标签对应HTML中的<input type="file">元素。
<html:file>标签嵌套在<html:form>标签中成为表单元素。
在使用该标签实现文件上传功能时,<html:form>标签必须进行如下设置。
<html:form action="doup" method="POST" enctype="multipart/form-data"> <html:file property="upfile"/></html:form>将<html:form>标签中的method属性值设为“POST”;将enctype属性设为“multipart/ form-data”。
另外,<html:file>标签的property属性必须设置,该属性值匹配<html:file>标签的name属性指定的或与<html:form>表单关联的FormBean中的setXXX()与getXXX()方法,其中getXXX()方法返回的值为org.a pache.struts.upload.FormFile类对象。
通过该对象可获取文件的相关信息。
如获取一个读取上传文件的InputStream对象。
InputStream in=FormFileObject.getInputStream()其中FormFileObject表示一个FormFile类对象。
下面通过一个范例向大家讲解如何通过<html:file>标签实现文件上传功能。
范例07-02 上传文件范例位置:mr\07\fl\02录像位置:mr\\07\lx\02本范例主要讲解使用<html:file>标签实现文件上传。
struts2标签 if使用
struts2标签if使用
A:<s:if>判断字符串的问题:
1、判断单个字符:<s:if test="#ername=='c'">
这样是从session中取出username的值,并且判断其是否为c,但是这样判断是不正确的,这样判断的话,根本判断不出来,要改成下面这样:
<s:if test="#ername=='c'.toString()">
这样判断才能正确判断,至于原因我也不知道,在网上看到struts2中可能它判断的是char类型。
2、判断字符串:<s:if test="#ername=='milo'">
这样写的就是判断username是不是milo,是String的判断,这个是不用加toString()的。
3、判断数值:<s:if test="#ername==0">
这样写的就是判断username是不是0,是int的判断。
B:判断为空的问题:
<s:if test="#ername==null">
struts2中的判空似乎只能这么写
判断非空可以这样写:
<s:if test="#ername!=null" >。
struts2jsp页面使用s:if标签
struts2jsp页⾯使⽤s:if标签在jsp页⾯使⽤s:if来判断和使⽤s:date来格式化时间显⽰⽅式1 <s:if test="jobChangeList.size()>0">2 <s:iterator value="j obChangeList">3 <tr>4 <td>5 <s:if test="employeetype==0">正式员⼯ </s:if>6 <s:elseif test="employeetype==1">外包 </s:elseif>7 <s:elseif test="employeetype= =2">实习⽣</s:elseif>8 <s:else></s:else>9 </td>10 <td> 11 <s:if test="dimission==1 ">在职 </s:if>12 <s:elseif test="dimission==2">离职 </s:elseif>13 </td>14 </tr>15 </s:iterator>字符<s:iterator value="adboardDOList"> 页⾯直接遍历action提供的数据 <td class="align-center"> <s:if test='stat us == "P"'> <span class="c-ok">审核通过</span> </s:if> <s:elseif test='status == "W" '> 待审核 </s:elseif> <s:elseif test='status=="R"'> <span class="c-warn ">审核拒绝</span> <span class="icon icon-warning" title="<s:property value='comments'/>"></span> </s:elseif> </td>注意这⾥如果status类型是字符串类型在if中外层⽤的是单引号⾥⾯⽤双引号串类型1 <s:set name="age" value="61"/> 页⾯通过set赋值同时在页⾯上判断2 <s:if test="${age > 60}">3 ⽼年⼈4 </s:if>5 <s:elseif test="${age > 35}">6 中年⼈7 </s:elseif>8 <s:elseif test="${age > 15}" id="wawa">9 青年⼈10 </s:elseif>11 <s:else>12 少年13 </s:else>14 2 从后台数据库中取出值通过对对象传到页⾯ 15 <s:i f test="psInfoDO.employeetype==0">正式员⼯ </s:if>16 <s:elseif test="psInfoDO.employeetype==1">外包 </s :elseif>17 <s:elseif test="psInfoDO.employeetype==2">实习⽣</s:elseif>18 319 <s:set name="name" value="< %="'"+ request.getParameter("name")+"'" %>"/>20 <%21 System.out.println(request.getParameter("name"));22 %>23 <s:if test="#name=='zhaosoft'">24 zhaosoft here25 </s:if>26 <s:elseif test="#name=='zxl'">27 zxl her e28 </s:elseif>29 <s:else>30 other is here 31 </s:else>。
Struts2的s:date标签使用详解[转]
Struts2的s:date标签使⽤详解[转]作⽤:⽤来格式化显⽰⽇期的格式。
它可以⽤⼀种你指定的格式来显⽰(如:“yyyy-MM-dd”),可以⽣成通俗易懂的注释(如:in 2 hours,14 minutes),或者⽤预先定义的⼀个格式来显⽰(如在properties配置⽂件中配置'struts.date.format').如果没有找到这个struts.date.format,则会找默认的DateFormat.MEDIUM来格式化你的⽇期对象。
当然如果在值栈中没有找你对应的⽇期对象,则会返回空格。
可配置的标签属性有:· name· nice· format下⾯这些功能的使⽤决定于nice属性与format属性。
1、nice属性为truei18n key defaultstruts.date.format.past{0} agostruts.date.format.future in {0}struts.date.format.seconds an instantstruts.date.format.minutes{0,choice,1#one minute|1<{0} minutes}struts.date.format.hours {0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes}struts.date.format.days {0,choice,1#one day|1<{0} days} {1,choice,0#|1#, one hour|1<, {1} hours}struts.date.format.years {0,choice,1#one year|1<{0} years} {1,choice,0#|1#, one day|1<, {1} days}2、nice属性为 false,format属性指定的格式如:dd/MM/yyyy在这种情况下,format属性将被使⽤。
struts2(checkbox_radio_select)表单标签的应用及详细事例
一、表单标签_checkbox复选框如果集合为list<s:checkboxlist name="list"list="{'Java','.Net','RoR','PHP'}"value="{'Java','.Net'}"/>生成如下html代码:<input type="checkbox"name="list"value="Java" checked="checked"/><label>Java</label><input type="checkbox"name="list"value=".Net" checked="checked"/><label>.Net</label><input type="checkbox"name="list" value="RoR"/><label>RoR</label><input type="checkbox"name="list"value="PHP" /><label>PHP</label><input type="checkbox"name="list"value="PHP" /><label>PHP</label>************************************************ *****<br>如果集合为MAP<s:checkboxlist name="map"list="#{1:'瑜珈用品',2:'户外用品',3:'球类',4:'自行车'}"listKey="key"listValue="value"value="{1,2,3}"/>生成如下html代码:<input type="checkbox"name="map"value="1" checked="checked"/><label>瑜珈用品</label><input type="checkbox"name="map"value="2" checked="checked"/><label>户外用品</label><input type="checkbox"name="map"value="3" checked="checked"/><label>球类</label><input type="checkbox"name="map"value="4"/><label>自行车</label>******************************************************<br>如果集合里存放的是javabean(id和name为Person的属性)<%Person person1 = new Person(1, "第一个");Person person2 = new Person(2, "第二个");List<Person> list = new ArrayList<Person>();list.add(person1);list.add(person2);request.setAttribute("persons", list);%><s:checkboxlist name="beans"list="#request.persons"listKey="id"listValue="name"/>生成如下html代码:<input type="checkbox"name=“beans" value="1"/><label>第一个</label><input type="checkbox"name=“beans" value="2"/><label>第二个</label>************************************************ ******<br>表单标签_radio单选框<a href="radio.jsp">测试</a><br>表单标签_select单选框<a href="select.jsp">测试</a>代码运行结果如下:----------------------------------------------------------------------------------------------------------------------------二、表单标签_radio下拉选择框如果集合里存放的是javabean(id和name为Person的属性) <%Person person1 = new Person(1, "第一个");Person person2 = new Person(2, "第二个");List<Person> list = new ArrayList<Person>();list.add(person1);list.add(person2);request.setAttribute("persons", list);%>< s:radio name="beans" list="#request.persons" listKey="id"listValue="name"/> 生成如下html代码:<input type="radio"name="beans"id="beans1" value="1"/><label>第一个</label><input type="radio"name="beans"id="beans2" value="2"/><label>第二个</label>************************************************ **************<br>该标签的使用和checkboxlist复选框相同。
struts中logic标签详解
(1)empty标签类名:org.apache.struts.taglib.logic.EmptyTag标签体:bodycontent=JSP引用logic:empty属性attribute:name,property,scope功能:判断对象的值是否为空(2)equal类名:org.apache.struts.taglib.logic.EqualTag标签体:bodycontent=JSP引用logic:equal属性attribute:cookie,header,name,parameter,property,scope,value 功能:等于比较符(3) forwardorg.apache.struts.taglib.logic.ForwardTag标签体:bodycontent=empty引用logic:forward属性attribute:name功能:页面导向,查找配置文件的全局forward(4) greaterEqual类名:org.apache.struts.taglib.logic.GreaterEqualTag标签体:bodycontent=JSP引用logic:greaterEqual属性attribute:cookie,header,name,parameter,property,scope,value功能:大于等于比较符(5)greaterThan类名:org.apache.struts.taglib.logic.GreaterThanTag标签体:bodycontent=JSP引用logic:greaterThan属性attribute:cookie,header,name,parameter,property,scope,value功能:大于比较符(6) iterator类名:org.apache.struts.taglib.logic.IterateTag标签体:bodycontent=JSP引用logic:iterator属性attribute:collection,id,indexId,length,name,offset,property,scope,type 功能:显示列表为collection的值(List ,ArrayList,HashMap等)(7)lessEqual类名org.apache.struts.taglib.logic.LessEqualTag标签体:bodycontent=JSPlogic:lessEqual属性attribute:cookie,header,name,parameter,property,scope,value功能:小于等于比较符(8)lessThan类名:org.apache.struts.taglib.logic.LessThanTag标签体:bodycontent=JSPlogic:lessThan属性attribute:cookie,header,name,parameter,property,scope,value功能:小于比较符(9)match类名:org.apache.struts.taglib.logic.MatchTag标签体:bodycontent=JSP引用logic:match属性attribute:cookie,header,location,name,parameter,property,scope,value 功能:比较对象(10)messagesNotPresent类名:org.apache.struts.taglib.logic.MessagesNotPresentTag 标签:bodycontent=JSP引用logic:messagesNotPresent属性attribute:name,property,message功能:ActionMessages/ActionErrors对象是否不存在(11)messagePresent类名:org.apache.struts.taglib.logic.MessagesPresentTag标签:bodycontent=JSP引用logic:messagePresent属性attribute:name,property,message功能:ActionMessages/ActionErrors对象是否不存在(12)notEmpty类名:org.apache.struts.taglib.logic.NotEmptyTag标签:bodycontent=JSP引用logic:notEmpty属性attribute:name,property,scope功能:比较对象是否不为空(13)notEqual类名:org.apache.struts.taglib.logic.NotEqualTag标签:bodycontent=JSP引用logic:notEqual属性attribute:cookie,header,name,parameter,property,scope,value(14)notMatch类名:org.apache.struts.taglib.logic.NotMatchTag标签:bodycontent=JSP引用logic:notMatch属性attribute:cookie,header,location,name,parameter,property,scope,value 功能:比较对象是否不相等(15)notPresent类名:org.apache.struts.taglib.logic.NotPresentTag标签:bodycontent=JSP引用logic:notPresent属性attribute:cookie,header,name,parameter,property,role,scope,user 功能:request对象传递参数是否不存在(16)present类名:org.apache.struts.taglib.logic.PresentTag标签:bodycontent=JSP引用logic:present属性attribute:cookie,header,name,parameter,property,role,scope,user 功能:request对象传递参数是否存在(17)redirect类名:org.apache.struts.taglib.logic.RedirectTag标签:bodycontent=JSP引用logic:redirect属性attribute:anchor,forward,href,name,page,paramId,paramName,paramPr operty,paramScope,property,scope,transaction功能;页面转向,可传递参数例子:1、<logic:iterate id="row" name="formBean" property="list" indexId="index"><logic:equal name="row" property="unit" value="defaultValue"> ...</logic:equal></logic:iterate><logic:notEmpty name="info"><logic:iterate id="list" name="info"><bean:define id="curId" name="list" property="id" /><logic:equal parameter="id" value="<%= curId.toString() %>"> abcde</logic:equal></logic:iterate></logic:notEmpty>parameter要进行比较的HTTP请求参数的名称name如果要进行比较的是bean或bean的属性,则这个属性代表bean的名称property要进行比较的bean属性的名称logic使用使用struts中的<logic:iterate>标记,可以完成一些复杂的循环。
struts中的if标签
if标签用来处理条件判断。
1.格式如下:<s:if test=""></s:if><s:elseif test=""></s:elseif><s:else></s:else>2.test属性为表示条件的OGNL表达式,如果表达式的值为true,则执行标签内的代码。
实例:web.xml:01.<?xml version="1.0" encoding="UTF-8"?>02.<web-app version="2.5"03. xmlns="/xml/ns/javaee"04. xmlns:xsi="/2001/XMLSchema-instance"05. xsi:schemaLocation="/xml/ns/javaee ;06. /xml/ns/javaee/web-app_2_5.xsd">07. <welcome-file-list>08. <welcome-file>hello.jsp</welcome-file>09. </welcome-file-list>10. <filter>11. <filter-name>struts2</filter-name>12.<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFi lter</filter-class>13. </filter>14. <filter-mapping>15. <filter-name>struts2</filter-name>16. <url-pattern>/*</url-pattern>17. </filter-mapping>18.</web-app>index.jsp:01.<%@ page language="java" pageEncoding="GB18030"%>02.<%03.String path = request.getContextPath();04.String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+p ath+"/";05.%>06.07.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">08.<html>09. <head>10. <base href="<%=basePath%>">11.12. <title>If</title>13. <meta http-equiv="pragma" content="no-cache">14. <meta http-equiv="cache-control" content="no-cache">15. <meta http-equiv="expires" content="0">16. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">17. <meta http-equiv="description" content="This is my page">18. <!--19. <link rel="stylesheet" type="text/css" href="styles.css">20. -->21. </head>22.23. <body>24. <a href="result.jsp?score=93">result.jsp?score=93</a><br />25. <a href="result.jsp?score=88">result.jsp?score=88</a><br />26. <a href="result.jsp?score=54">result.jsp?score=54</a><br />27. <a href="result.jsp?score=-1">result.jsp?score=-1</a><br />28. </body>29.</html>result.jsp:01.<%@ page language="java" pageEncoding="GB18030"%>02.<%@ taglib uri="/struts-tags" prefix="s" %>03.<%04.String path = request.getContextPath();05.String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+p ath+"/";06.%>07.08.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">09.<html>10. <head>11. <base href="<%=basePath%>">12.13. <title>If</title>14. <meta http-equiv="pragma" content="no-cache">15. <meta http-equiv="cache-control" content="no-cache">16. <meta http-equiv="expires" content="0">17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">18. <meta http-equiv="description" content="This is my page">19. <!--20. <link rel="stylesheet" type="text/css" href="styles.css">21. -->22. </head>23.24. <body>25. <s:set var="s" value="#parameters.score[0]" />26. <s:if test="#s < 0 || #s > 100">Error!</s:if>27. <s:elseif test="#s >= 90">A</s:elseif>28. <s:elseif test="#s >= 80">B</s:elseif>29. <s:elseif test="#s >= 70">C</s:elseif>30. <s:elseif test="#s >= 60">D</s:elseif>31. <s:else>E</s:else>32. <s:debug></s:debug>33. </body>34.</html>。
struts2标签详解
Struts2 标签详解详细的说明了struts2所有标签由整理版权属 以及原作者。
由于标签太多难做目录索引,如果你觉得有目录索引更好,请到/p/myjdemo/downloads/list 下载CHM版本的Struts2标签详解,谢谢。
aa标签创建一个HTML超链接,等价于HTML 的<a href=""....示范代码:<s:a href="login.action">登陆</s:a>action使用action标签可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name以及namespace。
如果指定了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图支援)包含到本页面中来。
action标签的属性:id:可选属性,该属性将会作为该Action的引用IDname:必填属性,指定该标签调用哪个Actionnamespace:可选,指定该标签调用的Action所在的namespace. executeResult:可选,指定是否要将Action的处理结果页面包含到本页面。
默认是false,即不包含ignoreContextParams:可选,它指定该页面中的请求参数是否需要传入调用的Action、默认是false,即将本页的请求参数传入被调用的Action。
下面是本示例应用中的Action类,包含连个处理逻辑。
代码如下public class TagAction extednds ActionSupport{//封装用户请求参数的author属性private String author;//author的get和set的方法,省略……public String execute() throws Exception{return "done";}public String login() throws Exception{ServletActionContext.getRequest().setAttribute("author",getAuthor()); return "done";}}上面的Action类包含两个处理逻辑,可以在struts.xml文件中通过指定method属性来将该Action类映射成两个逻辑Action。
struts2常用标签详解
struts2标签详解A:<s:a xhref=""></s:a>-----超链接,类似于html里的<a></a><s:action name=""></s:action>-----执行一个view里面的一个action<s:actionerror/>-----如果action的errors有值那么显示出来<s:actionmessage/>-----如果action的message有值那么显示出来<s:append></s:append>-----添加一个值到list,类似于list.add();<s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,这个是ajaxB:<s:bean name=""></s:bean>-----类似于struts1.x中的,JavaBean的值C:<s:checkbox></s:checkbox>-----复选框<s:checkboxlist list=""></s:checkboxlist>-----多选框<s:combobox list=""></s:combobox>-----下拉框<s:component></s:component>-----图像符号D:<s:date/>-----获取日期格式<s:datetimepicker></s:datetimepicker>-----日期输入框<s:debug></s:debug>-----显示错误信息<s:div></s:div>-----表示一个块,类似于html的<div></div><s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----双下拉框E:<s:if test="#name=‟hujianqiang‟">asdfasdf</s:if><s:elseif test=""></s:elseif><s:else></s:else>-----这3个标签一起使用,表示条件判断F:<s:fielderror></s:fielderror>-----显示文件错误信息<s:file></s:file>-----文件上传<s:form action=""></s:form>-----获取相应form的值G:<s:generator separator="" val=""></s:generator>----和<s:iterator>标签一起使用H:<s:head/>-----在<head></head>里使用,表示头文件结束<s:hidden></s:hidden>-----隐藏值I:<s:i18n name=""></s:i18n>-----加载资源包到值堆栈<s:include value=""></s:include>-----包含一个输出,servlet或jsp页面<s:inputtransferselect list=""></s:inputtransferselect>-----获取form的一个输入<s:iterator></s:iterator>-----用于遍历集合L:<s:label></s:label>-----只读的标签M:<s:merge></s:merge>-----合并遍历集合出来的值O:<s:optgroup></s:optgroup>-----获取标签组<s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右选择框P:<s:param></s:param>-----为其他标签提供参数<s:password></s:password>-----密码输入框<s:property/>-----得到'value'的属性<s:push value=""></s:push>-----value的值push到栈中,从而使property标签的能够获取value的属性R:<s:radio list=""></s:radio>-----单选按钮<s:reset></s:reset>-----重置按钮S:<s:select list=""></s:select>-----单选框<s:set name=""></s:set>-----赋予变量一个特定范围内的值<s:sort comparator=""></s:sort>-----通过属性给list分类<s:submit></s:submit>-----提交按钮<s:subset></s:subset>-----为遍历集合输出子集T:<s:tabbedPanel id=""></s:tabbedPanel>-----表格框<s:table></s:table>-----表格<s:text name=""></s:text>-----I18n文本信息<s:textarea></s:textarea>-----文本域输入框<s:textfield></s:textfield>-----文本输入框<s:token></s:token>-----拦截器<s:tree></s:tree>-----树<s:treenode label=""></s:treenode>-----树的结构U:<s:updownselect list=""></s:updownselect>-----多选择框<s:url></s:url>-----创建urlStruts2常用的Ajax标签Struts2为了简化Ajax过程,提供了一些常用的Ajax标签,对于一些更复杂的Ajax通信过程,我们可以使用JSON插件来实现。
JSP_Struts标签 htmlselect option基本用法
JSP_Struts标签 html:select option基本用法博客分类:JSP_StrutsJSPStruts标签html:selectoption基本用法<html:select>,<html:option>,<html:options>,<html:optionsCollection>标签使用<html:select>生成HTML<select>元素<html:option>:生成HTML<option>元素<html:options>:生成一组HTML<options>元素<html:optionsCollection>生成一组HTML<options>元素。
<html:select>生成HTML<select>元素,表示下拉列表框或多选列表。
在<html:select>标签中可以包含多个<html:option>,<html:options>,<html:optionCollections>元素。
<html:select>标签有以下重要属性size属性:指定每次在网页上显示的可选项的数目。
multipe属性:指定是否支持多项选择,如果设置为true,就表示多选列表,支持多项选择。
否则只表示下拉列表。
只支持单选操作。
默认值falseproperty属性:与ActionForm Bean中的某个属性对应,这个属性用来存放用户在列表上选中选项的值。
在单项选择的情况下,ActionForm Bean中的对应属性对应该列表上选项的值。
在单项选择情况下,ActionForm Bean对应属性应该定义为简单类型(不能为数组),在多项选择情况下,ActionForm Bean中的对应属性应该定义为数组类型,以便存放用户选择的多个选项。
- 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/>:比较变量是否等于指定的常量。