- 浏览: 34088 次
- 性别:
- 来自: 湖南
文章分类
最新评论
一、数据标签
数据标签可以从值栈中获取数据之余,还可以将变量和对象存储于值栈中。
1、property标签
功能:输出OGNL表达式的值
属性:
l value
[Object]进行求值的表达式,如果未指定该属性,则将被设定为top
l default
[String]如果依据value无法得到值,则使用default指定的默认值
l escape
[Boolean]确定是否将输出的内容进行HTML转义
2、set标签
功能:用于对值栈中的表达式进行求值,并将结果赋给特定作用域中的某个变量名。
属性:
l name
[String]在一个指定的作用域内被赋值的变量名
l value
[Object]希望用于赋值的表达式
l scope
[String]可选的值为:application、session、request、page或default。默认(default)即action context,set标签将对象放置于action context中。其他4种作用域直接对应于servlet应用程序的4个作用域。
范例:使用property标签访问存储在session中的User对象的多个字段:
<ww:property value=”#session[‘user’].username”/>
<ww:property value=”#session[‘user’].age”/>
<ww:property value=”#session[‘user’].address”/>
但每次都重复使用#session[‘user’],更好的做法是定义一个临时变量:
<ww:set name=”user” value=”#session[‘user’]”/>
<ww:property value=”#user.username”/>
<ww:property value=”#user.age”/>
<ww:property value=”#user.address”/>
3、push标签
功能:将对象的引用压入值栈,当需要围绕单个对象做大量操作的时候,可以将对象压入值栈之后直接对其进行操作。
属性:
l value
[Object]需要压入值栈的值所对应的表达式
范例:上例也可以进行如下操作:
<ww:set name="user" value="#session['user']"/>
<ww:push value="#user">
<ww:property value="username"/><br>
<ww:property value="email"/><br>
<ww:property value="address"/><br>
</ww:push>
再如:用同一个页面输出不同实例的属性
Test_push_include1.jsp
<%@ taglib prefix="ww" uri="webwork" %>
<html>
<head>
<title>Name Page</title>
</head>
<body>
<ww:set name="user1" value="#session['user']"/>
<ww:push value="#user1">
<ww:include value="push_include.jsp"/>
</ww:push>
</body>
</html>
Test_push_include2.jsp
<%@ taglib prefix="ww" uri="webwork" %>
<html>
<head>
<title>Name Page</title>
</head>
<body>
<ww:set name="user2" value="#session['user']"/>
<ww:push value="#user2">
<jsp:include page="push_include.jsp"/>
</ww:push>
</body>
</html>
Push_include.jsp
<%@ taglib prefix="ww" uri="webwork" %>
<html>
<head>
<title>Reg page</title>
</head>
<body>
<H3>Login Info</H3>
<ww:property value="username"/><br>
<ww:property value="email"/><br>
<ww:property value="address"/><br>
</body>
</html>
4、bean标签
功能:创建简单的JavaBean,并将其压入值栈中,在bean标签的起始与结束标记之间,除了可以将JavaBean压入值栈之外,还可以任意地把JavaBean赋值给某个变量,以便让其在action context中能够访问,实现类似set标签的功能。
属性:
l name
[String]被创建的bean对应的包和类名
l id
[String]如果需要在bean标签的范围之外引用bean对象,那么就应当通过id属性设置引用名称
参数:
bean标签可以包含param标签,可以通过提供的参数定制标签,设定bean的属性。
范例:
<ww:bean name="com.example.User" id="user">
<ww:param name="username">admin</ww:param>
<ww:param name="email">admin@example.com</ww:param>
<ww:param name="address">InnerMongolia Huhehot</ww:param>
<H3>Inner:</H3>
Username:<ww:property value="username"/><br>
E-mail:<ww:property value="email"/><br>
Address:<ww:property value="address"/><br>
</ww:bean>
<H3>Out:</H3>
Username:<ww:property value="#user.username"/><br>
E-Mail:<ww:property value="#user.email"/><br>
Address:<ww:property value="#user.address"/><br>
<ww:bean name="com.opensymphony.webwork.util.Counter" id="counter">
<ww:param name="last" value="100"/>
</ww:bean>
<ww:iterator value="#counter">
<li><ww:property/></li>
</ww:iterator>
5、action标签
功能:在JSP页面中执行action并访问相应的数据。默认情况下,action标签并不执行action的result,这样可以让那些可能呈现另外一个不同页面的action能够正常工作。
属性:
l name
[String]action名
l namespace
[String]action的namespace,默认值为当前页面所在的namespace
l id
[String]引用action bean所需的名称,以便在页面后面的部分引用
l executeResult
[Boolean]当设置为true时,会执行action对应的result,默认为false。
范例:
<%@ taglib prefix="ww" uri="webwork" %>
<html>
<head>
<title>List Page</title>
</head>
<body>
<H2>User Registor:</H2>
<ww:action name="reglist" executeResult="true"/>
</body>
</html>
二、控制标签
1、iterator标签
功能:循环遍历任何集合对象,包括Collection、Map、Enumeration、Iterator及array(数组),同时也可以在action context中定义一个变量,用于确定与当前循环状态相关的基本信息。
属性:
l value
[Collection、Map、Enumeration、Iterator或array]被循环遍历的对象
l status
[String]如果设置了该属性,IteratorStatus对象就会被放置在action context中。
IteratorStatus源代码:
package com.opensymphony.webwork.views.jsp;
public class IteratorStatus {
protected StatusState state;
public IteratorStatus(StatusState aState) {
state = aState;
}
public int getCount() {
return state.index + 1;
}
public boolean isEven() {
return ((state.index + 1) % 2) == 0;
}
public boolean isFirst() {
return state.index == 0;
}
public int getIndex() {
return state.index;
}
public boolean isLast() {
return state.last;
}
public boolean isOdd() {
return ((state.index + 1) % 2) == 1;
}
public int modulus(int operand) {
return (state.index + 1) % operand;
}
public static class StatusState {
boolean last = false;
int index = 0;
public void setLast(boolean isLast) {
last = isLast;
}
public void next() {
index++;
}
}
}
范例:使用IteratorStatus。
<%@ taglib prefix="ww" uri="webwork" %>
<html>
<head>
<title>List Page</title>
</head>
<body>
<table>
<ww:iterator value="users" status="rowstatus">
<ww:if test="#rowstatus.even">
<tr>
<td><ww:property value="username"/></td>
<td><ww:property value="email"/></td>
<td><ww:property value="address"/></td>
</tr>
</ww:if>
<ww:else>
<tr>
<td><font color="red"><ww:property value="username"/></font></td>
<td><font color="red"><ww:property value="email"/></font></td>
<td><font color="red"><ww:property value="address"/></font></td>
</tr>
</ww:else>
</ww:iterator>
</table>
</body>
</html>
2、if标签和else标签
功能:控制输出呈现,可以单独使用if标签,也可以结合elseif标签和else标签一起使用,else标签没有任何属性,而if和elseif只有一个属性test。
属性:
l test
[Boolean]用于求值并返回true或false的布尔表达式。
范例:
<%@ taglib prefix="ww" uri="webwork" %>
<html>
<head>
<title>List Page</title>
</head>
<body>
<table>
<ww:iterator value="users" status="rowstatus">
<ww:if test="#rowstatus.first">
<tr bgcolor="blue">
<td><ww:property value="username"/></td>
<td><ww:property value="email"/></td>
<td><ww:property value="address"/></td>
</tr>
</ww:if>
<ww:elseif test="#rowstatus.last">
<tr bgcolor="yellow">
<td><ww:property value="username"/></td>
<td><ww:property value="email"/></td>
<td><ww:property value="address"/></td>
</tr>
</ww:elseif>
<ww:elseif test="#rowstatus.odd">
<tr bgcolor="green">
<td><ww:property value="username"/></font></td>
<td><ww:property value="email"/></td>
<td><ww:property value="address"/></td>
</tr>
</ww:elseif>
<ww:else>
<tr bgcolor="gray">
<td><ww:property value="username"/></font></td>
<td><ww:property value="email"/></td>
<td><ww:property value="address"/></td>
</tr>
</ww:else>
</ww:iterator>
</body>
</html>
三、杂项标签
1、include标签
功能:可参数化的include标签,与WebWork集成在一起提供更多的高级特性。
属性:
l value
[String]页面名称、action、servlet或任何可引用的URL。
优点:
ü 提供对值栈的访问能力
ü 提供更具扩展性的参数模型
如:包含一个页面,同时利用值栈对该页面中使用了%{…}符号的内容进行求值。也可以使用<ww:param>标签对include标签增加参数,而param标签同样以来于值栈,比<jsp:include>标签更易于使用。
2、URL标签
功能:生成使用相对路径或者绝对路径的URL,处理参数,以及对URL进行编码,以便让没有启用cookie的浏览器使用。
属性:
l value
[String]基本的URL,用来生成URL的基本信息,默认值为生成当前页面的URL。
l includeParams
[String]从all、get或none中选择参数,默认为get。在默认情况下,WebWork包含当前页面的所有查询字符串;如果不希望包含任何参数,那么将该属性设置为none;可以通过设置为all,使得所有参数都可用于URL的生成,包括通过post提交的参数。
l id
[String]如果指定了该属性,那么URL将不会输出,而是会保存于action context,以作后用。
l includeContext
[Boolean]如果为true,那么生成的URL前面会加上应用程序所在的上下文(context)路径,默认为true。
l encode
[Boolean]如果访问者并没有启用cookie,那么将会在URL中增加session ID。
l scheme
[String]可以指定协议,默认为当前的设置(HTTP或者HTTPS)。WebWork使用默认的80端口监听HTTP请求,而使用443端口监听HTTPS端口,如果要更改,可以在webwork.properties文件中重新定义。
webwork.url.http.port = 8080
webwork.url.https.port = 8081
范例:
URL标签 |
结果 |
<ww:url/> |
/7_tag_url/ |
<ww:url scheme="ftp"/> |
ftp://127.0.0.1/7_tag_url/ |
<ww:url value="www.sina.com.cn"/> |
www.sina.com.cn |
<ww:url value="www.google.cn/search"> <ww:param name="q">java</ww:param> </ww:url> |
www.google.cn/search?q=java |
<ww:url value="http://iask.com/s" id="java"> <ww:param name="k">java</ww:param> </ww:url> <a href="<ww:property value="#java"/>"> search java in sina </a> |
<a href="http://iask.com/s?k=java"> search java in sina </a> |
<ww:url value="/test.html" id="test"/> <a href=" <ww:property value="#test"/>"> Test1 </a> |
<a href="/7_tag_url/test.html">Test1</a>
|
<ww:url value="/test.html" id="test" includeContext="false"/> <a href=" <ww:property value="#test"/>"> Test1 </a> |
<a href="/test.html">Test1</a> |
3、i18n和text标签
国际化支持
Ø text标签
功能:显示特定语言的文本,是基于键查询的标签
属性:
l name
[String]用于在ResourceBundle中进行查找的键。
l id
[String]如果设置了该属性,则文本内容将会存储于action context中,可以通过属性值的名称进行引用。
l value0
[Object]参数1
l value1
[Object]参数2
l value2
[Object]参数3
l value3
[Object]参数4
Ø i18n标签
功能:将资源包的内容压入栈中,可以在标签内部访问与资源包相关的i18n的资源。
属性:
l name
[String]资源包的名称。
4、param标签
功能:对其他标签提供作用。
属性:
l name
[String]应用于父标签的参数名称
l value
[Object]一个OGNL表达式,结果为被应用的值。
范例:
<ww:param name="username" value="'admin'"/>
<ww:param name="username">admin</ww:param>
相关推荐
Webwork标签库CHM是一个关于WebWork框架中标签库的参考文档,主要涵盖了WebWork框架中用于构建动态网页的自定义标签的相关知识。WebWork是一个Java Web开发框架,它简化了MVC(模型-视图-控制器)模式的实现,提高了...
### WebWork标签手册详解 #### 数据标签:连接前端与后端的桥梁 WebWork框架作为Struts的一个替代品,提供了一系列强大的标签库,用于简化Web应用的开发过程。其中,数据标签尤其关键,它们不仅能够从值栈中提取...
WebWork标签库分为多个类别,包括通用标签、组件化标签、流程控制标签、迭代标签、UI标签、VUI标签以及国际化支持标签。 1. **通用标签**: - `<ww:property>`:用于获取结果的属性值,如果未指定值,将从值栈顶部...
7. **标签库**:WebWork 自带一套丰富的标签库,可以方便地在JSP页面中使用,减少硬编码,提高开发效率。 8. **持久化支持**:WebWork 可以与各种持久化框架如Hibernate、iBatis等集成,方便进行数据库操作。 9. *...
Webwork2是一个基于Java的开源框架,主要用于构建动态、交互式的Web应用程序。它以其强大的MVC(模型-视图-控制器)架构而闻名,能够帮助开发者有效地组织代码,提高开发效率,同时保持良好的可维护性和扩展性。...
其中,WebWork标签库作为框架的一部分,提供了丰富的自定义标签,可以帮助开发者更方便快捷地实现页面逻辑。本文档将详细介绍WebWork中的几个核心标签,包括`data`标签、`property`标签、`set`标签、`push`标签以及`...
WebWork WW标签库是专门为WebWork框架设计的一组自定义标签,用于在JSP页面上进行动态数据展示、控制流操作和表单元素渲染。WW标签库提供了丰富的标签,例如`<ww:if>`、`<ww:iterator>`、`<ww:set>`、`<ww:property>...
WebWork标签库提供了一个`ww:datepicker`标签,它允许我们方便地与jQuery UI的Datepicker集成。下面是一个简单的例子: ```jsp <%@ taglib prefix="ww" uri="http://www.opensymphony.com/webwork" %> ... 选择...
这有助于Web服务器正确解析WebWork标签库。 ##### 1.4 配置web.xml `web.xml`是Web应用程序的核心配置文件之一,用于定义前端控制器(在WebWork中为Filter)、servlet映射等。在配置`web.xml`时,需要添加WebWork...
以下是对WebWork标签的详细介绍: 1. **通用标签**: - `<ww:property>`:用于获取ActionResult中的属性值,例如`<ww:property name="pname" />`显示Person对象的pname属性值。 - `<ww:param>`:设置父标签的参数...
#### 二、WebWork标签库和EL WebWork的标签库和表达式语言(EL)是其高效开发的关键。 - **WebWork标签库**:提供了一系列预定义的HTML标签,简化了页面的开发过程,如数据绑定、条件判断和循环等。 - **表达式...
3. **WebWork标签库和EL**: WebWork提供了丰富的JSP标签库,如`s:form`、`s:textfield`等,简化了视图层的开发。这些标签与ValueStack配合,可以直接访问模型数据。EL是一种简洁的表达式语言,用于在JSP中动态地...
4. **WebWork标签库**:提供了一系列与WebWork集成的JSP标签,如`<ww:form>`, `<ww:property>`等,简化视图层的开发。 **iBATIS**: 1. **iBATIS介绍**:iBATIS是一个持久层框架,它使Java代码与SQL语句解耦,通过...
3. JSP页面中使用WebWork标签库时,需在页面头部声明: ``` <%@taglib prefix="ww" uri="/webwork"%> ``` 4. 默认情况下,WebWork支持altSyntax语法,允许使用`%{}`表达式。 5. 若要使用Freemarker模板引擎,需在...
2. **Taglib** 配置:`jsp-config` 部分定义了一个 JSP 标签库(Taglib),即 WebWork 的标签库。`taglib-uri` 指定标签库的唯一标识符,`taglib-location` 指定包含 TLD(Tag Library Descriptor)的 JAR 文件位置...