第四章 Tablib Struts标签库
Struts2 Taglib抽象了不同表示技术,现在Struts2主要支持三种表示技术:JSP,FreeMarker和Velocity。但部分的Tag在三种表示技术下都可以使用,但是也有部分只能在某一种情况下使用。
Tab可以分为两类:通用标签和UI标签。
4.1节 通用标签
通用标签用来在页面表示的时候控制代码执行的过程,这些标签也允许从Action或者值堆栈中取得数据。例如地域,JavaBeans,URLs,和action。
控制标签控制程序执行,例如:if,else,iterator
数据标签管理数据的取得和创建,例如:bean,push,i18n
控制标签
if标签
描述
If标签用来控制基本的条件处理流程,通常和else标签或者elseif标签连用。
参数
名字
|
是否必须
|
默认值
|
可否使用表达式
|
类型
|
描述
|
id
|
否
|
|
是
|
String
|
用来表示该元素,对于UI和Form标签来说直接转变为HTML id属性
|
test
|
是
|
|
是
|
Boolean
|
用来决定是否显示标签内部内容的表达式
|
例子
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
<div>Will Not Be Executed</div>
</s:else>
elseIf 标签
参考if标签
else 标签
参考if标签
append标签
描述
用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。
参数
名字
|
是否必须
|
默认值
|
可否使用表达式
|
类型
|
描述
|
id
|
否
|
|
是
|
String
|
用来保存结果iterator的对象在value context中的名字。
|
例子
Action类
public class AppendIteratorTagAction extends ActionSupport {
private List myList1;
private List myList2;
private List myList3;
public String execute() throws Exception {
myList1 = new ArrayList();
myList1.add("1");
myList1.add("2");
myList1.add("3");
myList2 = new ArrayList();
myList2.add("a");
myList2.add("b");
myList2.add("c");
myList3 = new ArrayList();
myList3.add("A");
myList3.add("B");
myList3.add("C");
return "done";
}
public List getMyList1() { return myList1; }
public List getMyList2() { return myList2; }
public List getMyList3() { return myList3; }
标签使用
<s:append id="myAppendIterator">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:append>
<s:iterator value="%{#myAppendIterator}">
<s:property />
</s:iterator>
generator 标签(JSP Tag)
描述
从val属性生成一个iterator。
参数
例子
例1:
生成一个简单的iterator,并且使用iterator标签打印出内容。
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}">
<s:iterator>
<s:property /><br/>
</s:iterator>
</s:generator>
例2:
生成一个iterator,使用count属性。因为count属性值为3,所以只有前三个内容(aaa,bbb,ccc)在生成的iterator中。
Generate an iterator with count attribute
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="3">
<s:iterator>
<s:property /><br/>
</s:iterator>
</s:generator>
例3:
生成iterator,使用了id属性,之后生成的对象放在pageContext中,可以通过指定的id来访问。
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="4" separator="," id="myAtt" />
<%
Iterator i = (Iterator) pageContext.getAttribute("myAtt");
while(i.hasNext()) {
String s = (String) i.next();
%>
<%= s %> <br/>
<%
}
%>
例4:
生成iterator,使用converter属性,这里的convertor仅仅将每一个对象添加了一个"converter-"前缀。
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" converter="%{myConverter}">
<s:iterator>
<s:property /><br/>
</s:iterator>
</s:generator>
public class GeneratorTagAction extends ActionSupport {
....
public Converter getMyConverter() {
return new Converter() {
public Object convert(String value) throws Exception {
return "converter-"+value;
}
};
}
...
}
iterator 标签
描述
迭代处理一个java.util.Connection或者java.util.Iterator对象
参数
名字
|
是否必须
|
默认值
|
可否使用表达式
|
类型
|
描述
|
id
|
否
|
|
是
|
String
|
Id,
|
status
|
否
|
否
|
是
|
Boolean
|
如果指定,在循环的过程中会保留一个IteratorStatus类型的变量,该变量用来查询当前迭代的状态
|
value
|
否
|
|
是
|
String
|
被迭代的对象
|
例子
例1:
<s:iterator value="days">
<p>day is: <s:property/></p>
</s:iterator>
例2:
<s:bean name="org.apache.struts2.example.IteratorExample" id="it">
<s:param name="day" value="'foo'"/>
<s:param name="day" value="'bar'"/>
</s:bean>
<p/>
<table border="0" cellspacing="0" cellpadding="1">
<tr>
<th>Days of the week</th>
</tr>
<p/>
<s:iterator value="#it.days" status="rowstatus">
<tr>
<s:if test="#rowstatus.odd == true">
<td style="background: grey"><s:property/></td>
</s:if>
<s:else>
<td><s:property/></td>
</s:else>
</tr>
</s:iterator>
</table>
例3:
<s:iterator value="groupDao.groups" status="groupStatus">
<tr
class="<s:if test="#groupStatus.odd == true ">odd</s:if><s:else>even</s:else>">
<td><s:property value="name" /></td>
<td><s:property value="description" /></td>
<td>
<s:iterator value="users" status="userStatus">
<s:property value="fullName" />
<s:if test="!#userStatus.last">,</s:if>
</s:iterator>
</td>
</tr>
</s:iterator>
merge 标签(同append?)
描述
参数
例子
sort 标签(JSP-Tag)
描述
对一个可以迭代的对象进行排序操作。
参数
名字
|
是否必须
|
默认值
|
可否使用表达式
|
类型
|
描述
|
Comparator
|
是
|
|
是
|
java.util.Comparator
|
排序用的比较器
|
Source
|
否
|
|
是
|
String
|
排序对象
|
例子
例1:
<s:sort comparator="myComparator" source="myList">
<s:iterator>
<!-- do something with each sorted elements -->
<s:property value="..." />
</s:iterator>
</s:sort>
例2:
<s:sort id="mySortedList" comparator="myComparator" source="myList" />
<%
Iterator sortedIterator = (Iterator) pageContext.getAttribute("mySortedList");
for (Iterator i = sortedIterator; i.hasNext(); ) {
// do something with each of the sorted elements
}
%>
subset
描述
递归iterator的一部分
参数
名字
|
是否必须
|
默认值
|
可否使用表达式
|
类型
|
描述
|
count
|
False
|
|
是
|
Integer
|
Iterator<span
分享到:
Global site tag (gtag.js) - Google Analytics
|
相关推荐
4. **创建JSP页面**:在JSP页面中引入Pager Taglib的标签库。 ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> <%@ taglib prefix="pg" uri="/pager-taglib" %> ``` **使用指南:** 1. **创建Action**:在...
这个标签库通常与Spring MVC、Struts2等框架结合使用,提供了一种声明式的方式来展示数据分页。下面将详细解释`pager-taglib`的使用方法、核心概念以及其在实际项目中的应用。 一、`pager-taglib`概述 `pager-...
接着,在JSP页面中引入Struts HTML标签库,使用`@taglib`指令: ```jsp <%@ taglib uri="struts-html" prefix="html" %> ``` 1. `<html:html>`标签:这是Struts HTML标签库的基础,它可以设置`locale`属性,用于...
Struts2的标签库不仅限于核心库,还可以通过插件机制添加第三方标签库,如Struts2-dojo-plugin、Struts2-jquery-plugin等,这些插件提供了丰富的UI组件,如日期选择器、下拉树等。 总结,Struts2标签库是其强大功能...
在Struts2中,Taglib(标签库)和OGNL(Object-Graph Navigation Language)是两个至关重要的组件,它们极大地简化了视图层的开发,并且增强了表达式语言的功能。 **Struts2 Taglib** Struts2的标签库是一系列预定...
4. **Struts标签的使用方法**:在JSP页面中引入Struts标签库,通过`<%@ taglib %> `指令,然后在页面中使用对应的标签。例如,引入Struts HTML标签库: ```jsp <%@ taglib prefix="html" uri="/tags/html" %> ```...
在Struts框架中,HTML标签库是用于创建动态HTML页面的重要工具,能帮助开发者更高效、更简洁地编写JSP页面。本篇文章将深入探讨Struts中Html标签库的用法,主要分为以下几个方面: 1. **HTML标签库的引入** 在JSP...
在Web-INF目录下的jsp文件中,使用Struts2标签库展示数据。例如,HelloWorld.jsp: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> Hello, ``` 六、运行与调试 启动Web服务器,访问URL `...
Struts1 提供了两大类标签库:`struts-bean` 和 `struts-logic`,以及一些其他的辅助标签。 - **struts-bean** 标签库主要处理表单数据的绑定、显示等。 - **struts-logic** 标签库则负责逻辑控制,例如条件判断、...
- 指定了Struts标签库的位置和版本。 - **3.4.3 有关StrutsActionMapping的配置描述** - 定义了ActionServlet与Action对象之间的映射关系。 #### 第四章 Pros & Cons ##### 4.1 为什么支持Struts **4.1.1 为...
例如,在提供的代码片段中,可以看到`<%@ taglib prefix="s" uri="/struts-tags"%>`引入了Struts2的标签库,这使得在JSP中可以方便地使用OGNL表达式来操作页面上的Java对象。 ```jsp ("sex", Sex.MALE); %> This ...
导入Struts标签库 在Dreamweaver中实现Struts标记库支持的第一步是导入Struts的taglib文件。操作步骤如下: - 打开Dreamweaver,选择菜单栏中的“编辑”->“标签库…”选项,打开“标签库编辑器”。 - 在“标签库...
- 创建JSP页面:使用Struts标签库展示数据,处理用户交互。 - 配置`web.xml`:设置Struts的初始化参数和Servlet映射。 - 运行与调试:部署应用,测试Action的执行和页面的展示。 5. **Struts的优势**: - 结构...
2. **标签库**:`struts-taglib.jar` - 提供了一系列JSP标签,简化了视图层的开发,如logic标签用于控制流程,bean标签用于显示和操作数据。 3. **国际化支持**:`struts-logic.jar` 和 `struts-bean.jar` - 提供了...
导入struts标签库的正确代码应该是`<%@ taglib uri="/struts-tags" prefix="s" %>`. - C. Struts标签不仅支持OGNL表达式,也支持EL表达式。 - D. 虽然很多功能可以通过JSTL实现,但Struts2标签具有一些独特的功能...
Taglib,全称JSP Tag Library,是JavaServer Pages(JSP)技术中的一种自定义标签库。它允许开发者创建可重用的、自定义的HTML标签,以更简洁、易读的方式编写JSP页面,提高代码的可维护性和可扩展性。"pager-taglib...
4. **org.apache.struts.taglib**和**org.apache.struts.taglib.html**: 这些是Struts的标签库,用于在JSP页面中生成HTML表单和控制流程,例如`<html:form>`、`<logic:iterate>`等。 5. **org.apache.struts.tiles*...
5. **struts-taglib-1.3.10.jar**:提供了Struts自定义JSP标签库,如logic、bean、html、form和tiles标签,使得开发者能够更方便地创建动态Web页面。 6. **commons-beanutils-1.8.0.jar**:Apache Commons ...
本文详细介绍了如何在MyEclipse环境下配置Struts2的基本运行环境,包括导入jar包、配置web.xml和struts.xml文件、编写Action类以及使用Struts标签库等关键步骤。通过本文的介绍,读者应能熟练掌握Struts2环境的配置...