struts2标签

要使用struts2的标签库,需要引入以下这个语句:

<%@ taglib uri="/struts-tags" prefix="s"%>

一.控制标签

1.if/elseif/else标签

<body>
    <s:set name="age" value="30"></s:set>
    <s:if test="#age>60">老年</s:if>
    <s:elseif test="#age>35">中年</s:elseif>
    <s:elseif test="#age>13">青年</s:elseif>
    <s:else>少年</s:else>
  </body>

 2.iteractor标签

可以指定以下三个属性

(1)value:这是一个可选的属性,指定被迭代的集合,被迭代的集合通常是使用OGNL表达式指定.如果没有value属性,则使用ValueStack栈顶的集合

(2)id: 可选元素,指定了集合元素的ID

(3)status:可选属性,指定迭代器的IteratorStatus实例

  <table border="1" width="300">
    	<s:iterator value="{'aaa','bbb','ccc'}" id="name" status="st">
    		<tr>
    			<td>
    				<s:property value="name"></s:property>
    			</td>
    			<td>
    				<s:property value="#st.count"></s:property>
    			</td>
    		</tr>
    	</s:iterator>
    </table>

 

 <table border="1" width="300">
    	<s:iterator value="#{'aaa':'AAA','bbb':'BBB','ccc':'CCC'}" id="score" status="st">
    		<tr>
    			<td>
    				<s:property value="key"></s:property>
    			</td>
    			<td>
    				<s:property value="value"></s:property>
    			</td>
    		</tr>
    	</s:iterator>
    </table>

 3.append标签:能够将多个集合对象拼接起来,组成一个新的集合.通过拼接,可以允许通过一个<s:iterator>标签完成多个集合的迭代

在使用<s:append>标签时,需要指定var属性,也可以使用id

<s:append var="#newlist">
    	<s:param value="{'AAA','BBB','CCC'}"></s:param>
    	<s:param value="{'DDD','EEE'}"></s:param>
    </s:append>
    <table border="1" width="300">
    <s:iterator value="#newlist" id="name" status="st">
    	<tr>
    			<td>
    				<s:property value="name"></s:property>
    			</td>
    			<td>
    				<s:property value="#st.count"></s:property>
    			</td>
    		</tr>
    </s:iterator>
   </table>

 4.generator标签

根据指定的分隔符将指定的字符串分隔成多个子串,可以使用iterator迭代输出临时生成的多个子串,该标签有以下5个属性

count:可选的属性,该属性指定生成集合中元素的总数

seperator:一个必填的属性,该属性指定用于解析字符串的分隔符

val:必填属性,该属性指定要解析的字符串

convertor:可选属性,将集合中的每个字符串转化为对象

var:可选属性,如果指定了该属性,则将生成的Iterator对象放入Context中

<s:generator val="'A,B,C,D'" separator=','>
   	    <s:iterator>
   	    	<s:property/>
   	    </s:iterator>
   </s:generator>

 

<s:generator val="'A,B,C,D'" separator=',' var="book"/>
   	    <s:iterator value="book" var="name">
   	    	<s:property value="name"/>
   	    </s:iterator>
  </body>

 4.merge标签:跟append标签相似,只是拼接的次序不一样

假设有三个集合,append拼接次序如下

(1)第一个集合第一个元素,第一个集合第二个元素,第一个集合第三个元素,....先拼接完一个集合再接着拼接下一个集合

(2)merge则是:第一个集合第一个元素,第二个集合第一个元素,第三个集合第一个元素,第一个集合第二个元素....

5.subset标签:取得集合的子集,有以下属性

count:指定子集中元素的个数

start:指定子集从源集合中哪个元素开始取值

source:指定源集合

<s:subset source="{'aaa','bbb','ccc'}" start='1' count='2'>
   		<s:iterator>
   			<s:property/>
   		</s:iterator>
   	</s:subset>

 

二.数据标签

1.action标签:可以允许在jsp页面中直接调用action,有以下属性

name:必填属性,指定调用哪个Action

namespace:指定命名空间

executeResult:可选属性,如果该属性为true,则该标签会将action的处理结果(视图资源)包含到本页面中

var,ignoreContextParams指定是否将页面的请求参数传入调用的action中,默认值为false

<s:action name="login/login" executeResult="true"></s:action>

 

2.bean标签.

bean标签的功能是创建一个javaBean实例.在创建JavaBean实例时,可以在体内使用<param.../>标签为该Bean实例传入属性,同时应该为该JavaBean类提供对应的setter方法

<s:bean name="model.Person">
 		<s:param name="username" value="'manting'"></s:param>
 		<s:param name="age" value="23"></s:param>
 		<s:property value="username"/>
 		<s:property value="age"/>
 	</s:bean>

 3.date标签:输出一个格式化的日期

format:日期格式

name:必填属性,指定要格式化的日期值

nice:可选属性,该属性只为true或false,显示指定日期和当前时间的时间差,默认值为false,一般和format不能同时设定

var:指定了该属性,格式化后的字符串将放入StackContex中,并放入requestScope中,不会在页面上输出

<s:date name="#attr.now" format="yyyy年MM月dd日" var="date"/>
 	${date}

 4.form表单标签

1.checkboxlist:可以一次创建多个复选框,功能是一次生成多个HTML标签中的<input type="checkbox">,它根据list属性指定的集合生成多个复选框.

listKey:功能指定集合元素中某个属性为复选框的key

listValue:功能指定集合元素中某个属性作为复选框的value

<s:checkboxlist name="a" list="{'css','htm','java'}" label="请输入选择的科目" lablePosition="top"></s:checkboxlist>
 		<s:checkboxlist name="a" list="#{'css':'css1','htm':'html1','java':'java1'}" label="请输入选择的科目" lablePosition="top" listKey="key" listValue="value"></s:checkboxlist>

 该标签还可以与javaBean类相结合,访问javaBean的属性

public class Book {
	private String name;
	private String author;
	public Book(){}
	public Book(String name,String author){
		this.name=name;
		this.author=author;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
}

 

public class BookService {
	public Book[] getBooks(){
		return new Book[]{
				new Book("css","张三"),
				new Book("java","李四"),
				new Book("html","王五")
		};
	}
}

 

<s:bean name="service.BookService" id="bs"></s:bean>
 	<s:form>
 		<s:checkboxlist name="a" list="#bs.books" label="请输入喜欢的科目" lablePosition="top" listKey="name" listValue="author"></s:checkboxlist>
 	</s:form>

 2.combobox标签,下拉框标签

 

 

<s:combobox label="选择你喜欢的图书:" theme="css_xhtml" labelposition="top"  list="{'dsj','dsjk','wqie'}" name="book"></s:combobox>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值