- 浏览: 102934 次
- 性别:
- 来自: 上海
最新评论
-
itway:
专业。谢谢
<jsp:useBean>元素使用全解 -
xyz872389734:
很详细,谢谢了。
在线购书系统DAO层Jdbc技术实现参考 -
wasw100:
老师要写独立博客?
制作WordPress模板所需要调用的PHP代码 -
chendw_hz:
关键看你怎么理解继承和组合的关系 继承是强是关系 而组合是弱是 ...
设计模式解读之一: 策略模式 -
zhao_xiao_dong:
一直拥有一本Java与模式,到现在都没有沉下心去看过,自控力怎 ...
设计模式解读之一: 策略模式
第九章: 标签库
WebWork提供四类标签:
. 数据标签: 从值栈中取数据,将数据设置到值栈;
. 控制流标签:改变程序的执行流,以及基于系统的状态产生不同的输出;
. UI标签: 主要呈现表单外观;
. 杂项标签: 生成URL和输入国际化文本等。
语法:1. 对String类型外的内容依据值栈进行求值;
2. 对String类型内容进行解析:WebWork查找符合%{...}样式的子串,然后对大括号间的表达式进行求值。
在默认情况下,WebWork 2.1.x关没有启用新语法,通过在webwork.properties中新增一行代码实现:
webwork.tag.altSyntax = true;
一. 数据标签
1. property 标签:输出OGNL表达式的值;
property标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
value Object 否 进行求值的表达式,如没设定,将会被设定为top
default String 否 如果依据value属性无法得到具体值,则使用default设定的默认值
escape Boolean 否 是否将输出内容进行HTML转义,例设为true, &将转义为&
------------------------------------------------------------------------------------------------
2. set 标签:对值栈中的表达式进行求值,并将结果赋给特定作用域中的某个变量名。
set标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 是 在一个指定的作用域内被赋值的变量名
value Object 是 用于赋值的表达式
scope String 否 可选的值为:application, session,request, page或default(即action context)
------------------------------------------------------------------------------------------------
举例:
<%@page contentType="text/html;charset=UTF-8" %>
<%@taglib uri="webwork" prefix="ww" %>
Name: <ww:property value="#session['u'].name"/><br>
Password: <ww:property value="#session.u.password"/><br>
每次都要重复使用#session['u']不仅烦人,而且容易出错。可以通过set标签定义一个临时变量,令这个变量指向user对象。
<%@page contentType="text/html;charset=UTF-8" %>
<%@taglib uri="webwork" prefix="ww" %>
<ww:set name="u" value="#session.u"/>
Name: <ww:property value="#u.name"/><br>
Password: <ww:property value="#u.password"/><br>
3. push 标签:将对象压入值栈后直接对其进行多次操作,而不需要在每个与对象相关的表达式之前加上对象名称。
push标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
value Object 是 需要压入值栈的树所对应的表达式
如使用push标签,上个例子代码可进一步简化:
<%@page contentType="text/html;charset=UTF-8" %>
<%@taglib uri="webwork" prefix="ww" %>
<ww:set name="u" value="#session.u"/>
<ww:push value="#u">
Name: <ww:property value="name"/><br>
Password: <ww:property value="password"/><br>
</ww:push>
push标签通常和JSP静态包含,实现部分代码重用;
4. bean 标签:创建JavaBean,压入值栈以及赋给某个变量名。
bean标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 是 被创建的bean对应的包名和类名
id String 否 如果需在bean标签之外引用bean对象,可通过id属性设置引用名称
<%@page contentType="text/html;charset=UTF-8" %>
<%@taglib uri="webwork" prefix="ww" %>
<ww:bean name="java.util.Date" id="now"/>
<ww:bean name="com.opensymphony.webwork.util.DateFormatter">
<ww:param name="format" value="'MM/dd/yyyy'"/>
<ww:param name="date" value="now"/>
<ww:property value="formattedDate"/>
</ww:bean>
打印输出当前日期。虽然可用DateFormatter打印出格式化的日期,还是推荐使用国际化功能实现格式化的操作。
5. action 标签:执行action并访问相应的数据。
action 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 是 action名
namespace String 否 action的namespace,默认值为当前页面所在的namespace
id String 否 引用action bean所需的名称,便于在页面后面的部分引用
executeResult Boolean 否 为true,才执行action对应的result,默认值为false;
使用action标签,可以在页面重用action输出的结果, 举例有一action往页面上输出一树形目录,该目录在多处要被使用,
可以使用以下形式使用:
<ww:action name="categoryTree" executeResult="true"/>
其中categoryTree为action在xwork.xml中的配置名称。
二. 控制标签
1. iterator标签:轻松循环遍历任何对象集合,包括Collection, Map, Enumeraton, Iterator及array。同时可在action context
中定义一个变量,用于确定与当前循环状态相关的基本信息。
iterator 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
value Collection,Map,Enumeration 是 被循环遍历的对象
Iterator或者array
status String 否 如果设置了该属性,IteratorStatus对象就会被
置于action context中
示例:
a. action
package ch9;
import com.opensymphony.xwork.ActionSupport;
import java.util.*;
import ch4.User;
public class IteratorTagTest extends ActionSupport {
private String[] array = {"Monday","Tuesday","Wednesday","Thursday"};
private List<User> list;
private Map<Integer, String> map;
@Override
public String execute() {
list = new ArrayList<User>();
for(int i=0;i<10;i++) {
User u = new User("user"+i, "resu"+i);
list.add(u);
}
map = new HashMap<Integer, String>();
for(int i=1;i<array.length;i++) {
map.put(i, array[i]);
}
return SUCCESS;
}
public String[] getArray() {
return array;
}
public void setArray(String[] array) {
this.array = array;
}
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
public Map<Integer, String> getMap() {
return map;
}
public void setMap(Map<Integer, String> map) {
this.map = map;
}
}
b. jsp
<%@page contentType="text/html;charset=UTF-8" %>
<%@taglib uri="webwork" prefix="ww" %>
<html>
<body>
<h3><ww:iterator>遍历数组</h3>
<ww:iterator value="array">
<ww:property value="top"/><br>
</ww:iterator>
<h3><ww:iterator>遍历Collection</h3>
<ww:iterator value="list">
<ww:push value="top">
Name: <ww:property value="name"/>
Password: <ww:property value="password"/><br>
</ww:push>
</ww:iterator>
<h3><ww:iterator>遍历Map</h3>
<ww:iterator value="map">
<ww:property value="key"/>,
<ww:property value="value"/><br>
</ww:iterator>
</body>
</html>
c. 显示效果:
<ww:iterator>遍历数组
Monday
Tuesday
Wednesday
Thursday
<ww:iterator>遍历Collection
Name: user0 Password: resu0
Name: user1 Password: resu1
Name: user2 Password: resu2
Name: user3 Password: resu3
Name: user4 Password: resu4
Name: user5 Password: resu5
Name: user6 Password: resu6
Name: user7 Password: resu7
Name: user8 Password: resu8
Name: user9 Password: resu9
<ww:iterator>遍历Map
1, Tuesday
2, Wednesday
3, Thursday
另通过status属性,在action context中生成一个IteratorStatus对象。该对象提供诸如集合大小、当前索引,以及当前遍
历到的对象处于列表的单数索引位置还是双数索引位置等信息。如结合if/else标签,可实现奇数行和偶数行使用不同颜色
阴影的表格。
2. if/else标签:实现基本页面执行流及页面呈现。
if/else 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
test Boolean 是 用于求值并返回true或false的布尔表达式
刚才那个JSP我们再行改一下,使对Collection遍历的内容,一行红色,一行黑色相间隔:
<h3><ww:iterator>遍历Collection</h3>
<ww:iterator value="list" status="status">
<ww:if test="#status.even">
<ww:set name="color" value="'black'"/>
</ww:if>
<ww:else>
<ww:set name="color" value="'red'"/>
</ww:else>
<font color="<ww:property value="color"/>">
<ww:push value="top">
Name: <ww:property value="name"/>
Password: <ww:property value="password"/><br>
</ww:push>
</font>
</ww:iterator>
三. 杂项标签
1. include标签:功能与<jsp:include>类似,但提供了与WebWork更好的集成。
include 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
value String 是 页面名称,action, servlet或任何引用的URL
. 更好的WebWork集成:可利用值栈对使用%{...}符号的内容进行求值;
. 对用户友好: 不管路径是绝对还是相对,最后均会重写为绝对的URL路径;
2. URL标签:生成相对或绝对路径的URL,处理参数以及对URL进行编码。
URL 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
value String 否 基本的URL。默认值为生成当前页面的URL
includeParams String 否 从all,get或none中选择参数,默认值为get
id String 否 如果指定了该属性,那么URL将不会输出,而是会保存于
action context, 以作后用
includeContext Boolean 否 如果为true,那么生成的URL前面会加上应用程序所在的上下
文路径。默认值为false;
encode Boolean 否 如果访问者没有启用cookie,则在URL中增加session ID.
scheme String 否 让你可以指定协议,默认为当前的设置(HTTP或HTTPS)
举例:
a. 生成search.action?query=XXX, 其中XXX为表达式求值后的具体数值;
<ww:url value="search.action">
<ww:param name="query" value="name"/>
</ww:url>
b. 包含当前页面的所有查询字符串
includeParams属性设置为get, WebWork包含当前页面的所有查询字符串。
为none, 不包含任何参数。
为all, 所有参数都可以用不着URL的生成,包括通过POST请求提交的参数。
c. 在URL前加上程序所在上下文
只有设定includeContext值为true,且URL为绝对路径情况下才会加上程序所在上下文。
3. text标签:显示特定语言的文本
text 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 是 用于在ResourceBundle中进行查找的键
id String 否 如果设置该属性,文本内容将会存储在action context中,
那么通过属性值的名称可以进行引用
value0 Object 否 参数1(deprecated)
value1 Object 否 参数2(deprecated)
value2 Object 否 参数3(deprecated)
value3 Object 否 参数4(deprecated)
示例:
如searchResults键对应的英文文本如下: We searched {0} items in your database and found {1} matches. 那么可
通过以下内容进行获取内容:
<ww:text name="searchResults">
<ww:param value="totalItems"/>
<ww:param value="searchCount"/>
</ww:text>
那么第一个param的值对应参数{0},第二个param的值对应参数{1}。
4. i18n标签:将某个资源包的内容压入栈中,让你可以在标签内部访问与资源包相关的i18n的资源
i18n 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 是 资源(resource boundle)的名称
示例:
<ww:i18n name="org.hibernate.auction.myBundle">
<ww:text name="someKey"/>
</ww:i18n>
代码将从myBundle这个资源包中查找someKey对应的文本,而不是默认的资源包。
5. param标签:辅助其他标签,实现参数内容传递;
param 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 否 应用于像URL或者action这样的父标签的参数名称
value Object 否 一个OGNL表达式,结果为被应用的值
. 除了text标签外,其他标签使用参数的时侯都依照键/值对的形式;
. 使用标签内容的内容进行设置,这种途径并不能为value属性赋值一个OGNL的表达式,只会被作为一个String
的参数值;
<ww:text name="searchResults">
<ww:param>over 5 million</ww:param>
<ww:param value="searchCount"/>
</ww:text>
WebWork提供四类标签:
. 数据标签: 从值栈中取数据,将数据设置到值栈;
. 控制流标签:改变程序的执行流,以及基于系统的状态产生不同的输出;
. UI标签: 主要呈现表单外观;
. 杂项标签: 生成URL和输入国际化文本等。
语法:1. 对String类型外的内容依据值栈进行求值;
2. 对String类型内容进行解析:WebWork查找符合%{...}样式的子串,然后对大括号间的表达式进行求值。
在默认情况下,WebWork 2.1.x关没有启用新语法,通过在webwork.properties中新增一行代码实现:
webwork.tag.altSyntax = true;
一. 数据标签
1. property 标签:输出OGNL表达式的值;
property标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
value Object 否 进行求值的表达式,如没设定,将会被设定为top
default String 否 如果依据value属性无法得到具体值,则使用default设定的默认值
escape Boolean 否 是否将输出内容进行HTML转义,例设为true, &将转义为&
------------------------------------------------------------------------------------------------
2. set 标签:对值栈中的表达式进行求值,并将结果赋给特定作用域中的某个变量名。
set标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 是 在一个指定的作用域内被赋值的变量名
value Object 是 用于赋值的表达式
scope String 否 可选的值为:application, session,request, page或default(即action context)
------------------------------------------------------------------------------------------------
举例:
<%@page contentType="text/html;charset=UTF-8" %>
<%@taglib uri="webwork" prefix="ww" %>
Name: <ww:property value="#session['u'].name"/><br>
Password: <ww:property value="#session.u.password"/><br>
每次都要重复使用#session['u']不仅烦人,而且容易出错。可以通过set标签定义一个临时变量,令这个变量指向user对象。
<%@page contentType="text/html;charset=UTF-8" %>
<%@taglib uri="webwork" prefix="ww" %>
<ww:set name="u" value="#session.u"/>
Name: <ww:property value="#u.name"/><br>
Password: <ww:property value="#u.password"/><br>
3. push 标签:将对象压入值栈后直接对其进行多次操作,而不需要在每个与对象相关的表达式之前加上对象名称。
push标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
value Object 是 需要压入值栈的树所对应的表达式
如使用push标签,上个例子代码可进一步简化:
<%@page contentType="text/html;charset=UTF-8" %>
<%@taglib uri="webwork" prefix="ww" %>
<ww:set name="u" value="#session.u"/>
<ww:push value="#u">
Name: <ww:property value="name"/><br>
Password: <ww:property value="password"/><br>
</ww:push>
push标签通常和JSP静态包含,实现部分代码重用;
4. bean 标签:创建JavaBean,压入值栈以及赋给某个变量名。
bean标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 是 被创建的bean对应的包名和类名
id String 否 如果需在bean标签之外引用bean对象,可通过id属性设置引用名称
<%@page contentType="text/html;charset=UTF-8" %>
<%@taglib uri="webwork" prefix="ww" %>
<ww:bean name="java.util.Date" id="now"/>
<ww:bean name="com.opensymphony.webwork.util.DateFormatter">
<ww:param name="format" value="'MM/dd/yyyy'"/>
<ww:param name="date" value="now"/>
<ww:property value="formattedDate"/>
</ww:bean>
打印输出当前日期。虽然可用DateFormatter打印出格式化的日期,还是推荐使用国际化功能实现格式化的操作。
5. action 标签:执行action并访问相应的数据。
action 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 是 action名
namespace String 否 action的namespace,默认值为当前页面所在的namespace
id String 否 引用action bean所需的名称,便于在页面后面的部分引用
executeResult Boolean 否 为true,才执行action对应的result,默认值为false;
使用action标签,可以在页面重用action输出的结果, 举例有一action往页面上输出一树形目录,该目录在多处要被使用,
可以使用以下形式使用:
<ww:action name="categoryTree" executeResult="true"/>
其中categoryTree为action在xwork.xml中的配置名称。
二. 控制标签
1. iterator标签:轻松循环遍历任何对象集合,包括Collection, Map, Enumeraton, Iterator及array。同时可在action context
中定义一个变量,用于确定与当前循环状态相关的基本信息。
iterator 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
value Collection,Map,Enumeration 是 被循环遍历的对象
Iterator或者array
status String 否 如果设置了该属性,IteratorStatus对象就会被
置于action context中
示例:
a. action
package ch9;
import com.opensymphony.xwork.ActionSupport;
import java.util.*;
import ch4.User;
public class IteratorTagTest extends ActionSupport {
private String[] array = {"Monday","Tuesday","Wednesday","Thursday"};
private List<User> list;
private Map<Integer, String> map;
@Override
public String execute() {
list = new ArrayList<User>();
for(int i=0;i<10;i++) {
User u = new User("user"+i, "resu"+i);
list.add(u);
}
map = new HashMap<Integer, String>();
for(int i=1;i<array.length;i++) {
map.put(i, array[i]);
}
return SUCCESS;
}
public String[] getArray() {
return array;
}
public void setArray(String[] array) {
this.array = array;
}
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
public Map<Integer, String> getMap() {
return map;
}
public void setMap(Map<Integer, String> map) {
this.map = map;
}
}
b. jsp
<%@page contentType="text/html;charset=UTF-8" %>
<%@taglib uri="webwork" prefix="ww" %>
<html>
<body>
<h3><ww:iterator>遍历数组</h3>
<ww:iterator value="array">
<ww:property value="top"/><br>
</ww:iterator>
<h3><ww:iterator>遍历Collection</h3>
<ww:iterator value="list">
<ww:push value="top">
Name: <ww:property value="name"/>
Password: <ww:property value="password"/><br>
</ww:push>
</ww:iterator>
<h3><ww:iterator>遍历Map</h3>
<ww:iterator value="map">
<ww:property value="key"/>,
<ww:property value="value"/><br>
</ww:iterator>
</body>
</html>
c. 显示效果:
<ww:iterator>遍历数组
Monday
Tuesday
Wednesday
Thursday
<ww:iterator>遍历Collection
Name: user0 Password: resu0
Name: user1 Password: resu1
Name: user2 Password: resu2
Name: user3 Password: resu3
Name: user4 Password: resu4
Name: user5 Password: resu5
Name: user6 Password: resu6
Name: user7 Password: resu7
Name: user8 Password: resu8
Name: user9 Password: resu9
<ww:iterator>遍历Map
1, Tuesday
2, Wednesday
3, Thursday
另通过status属性,在action context中生成一个IteratorStatus对象。该对象提供诸如集合大小、当前索引,以及当前遍
历到的对象处于列表的单数索引位置还是双数索引位置等信息。如结合if/else标签,可实现奇数行和偶数行使用不同颜色
阴影的表格。
2. if/else标签:实现基本页面执行流及页面呈现。
if/else 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
test Boolean 是 用于求值并返回true或false的布尔表达式
刚才那个JSP我们再行改一下,使对Collection遍历的内容,一行红色,一行黑色相间隔:
<h3><ww:iterator>遍历Collection</h3>
<ww:iterator value="list" status="status">
<ww:if test="#status.even">
<ww:set name="color" value="'black'"/>
</ww:if>
<ww:else>
<ww:set name="color" value="'red'"/>
</ww:else>
<font color="<ww:property value="color"/>">
<ww:push value="top">
Name: <ww:property value="name"/>
Password: <ww:property value="password"/><br>
</ww:push>
</font>
</ww:iterator>
三. 杂项标签
1. include标签:功能与<jsp:include>类似,但提供了与WebWork更好的集成。
include 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
value String 是 页面名称,action, servlet或任何引用的URL
. 更好的WebWork集成:可利用值栈对使用%{...}符号的内容进行求值;
. 对用户友好: 不管路径是绝对还是相对,最后均会重写为绝对的URL路径;
2. URL标签:生成相对或绝对路径的URL,处理参数以及对URL进行编码。
URL 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
value String 否 基本的URL。默认值为生成当前页面的URL
includeParams String 否 从all,get或none中选择参数,默认值为get
id String 否 如果指定了该属性,那么URL将不会输出,而是会保存于
action context, 以作后用
includeContext Boolean 否 如果为true,那么生成的URL前面会加上应用程序所在的上下
文路径。默认值为false;
encode Boolean 否 如果访问者没有启用cookie,则在URL中增加session ID.
scheme String 否 让你可以指定协议,默认为当前的设置(HTTP或HTTPS)
举例:
a. 生成search.action?query=XXX, 其中XXX为表达式求值后的具体数值;
<ww:url value="search.action">
<ww:param name="query" value="name"/>
</ww:url>
b. 包含当前页面的所有查询字符串
includeParams属性设置为get, WebWork包含当前页面的所有查询字符串。
为none, 不包含任何参数。
为all, 所有参数都可以用不着URL的生成,包括通过POST请求提交的参数。
c. 在URL前加上程序所在上下文
只有设定includeContext值为true,且URL为绝对路径情况下才会加上程序所在上下文。
3. text标签:显示特定语言的文本
text 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 是 用于在ResourceBundle中进行查找的键
id String 否 如果设置该属性,文本内容将会存储在action context中,
那么通过属性值的名称可以进行引用
value0 Object 否 参数1(deprecated)
value1 Object 否 参数2(deprecated)
value2 Object 否 参数3(deprecated)
value3 Object 否 参数4(deprecated)
示例:
如searchResults键对应的英文文本如下: We searched {0} items in your database and found {1} matches. 那么可
通过以下内容进行获取内容:
<ww:text name="searchResults">
<ww:param value="totalItems"/>
<ww:param value="searchCount"/>
</ww:text>
那么第一个param的值对应参数{0},第二个param的值对应参数{1}。
4. i18n标签:将某个资源包的内容压入栈中,让你可以在标签内部访问与资源包相关的i18n的资源
i18n 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 是 资源(resource boundle)的名称
示例:
<ww:i18n name="org.hibernate.auction.myBundle">
<ww:text name="someKey"/>
</ww:i18n>
代码将从myBundle这个资源包中查找someKey对应的文本,而不是默认的资源包。
5. param标签:辅助其他标签,实现参数内容传递;
param 标签的属性
------------------------------------------------------------------------------------------------
属性 数据类型 是否必需 描述
------------------------------------------------------------------------------------------------
name String 否 应用于像URL或者action这样的父标签的参数名称
value Object 否 一个OGNL表达式,结果为被应用的值
. 除了text标签外,其他标签使用参数的时侯都依照键/值对的形式;
. 使用标签内容的内容进行设置,这种途径并不能为value属性赋值一个OGNL的表达式,只会被作为一个String
的参数值;
<ww:text name="searchResults">
<ww:param>over 5 million</ww:param>
<ww:param value="searchCount"/>
</ww:text>
发表评论
-
《WebWork in action》第八章
2007-09-26 14:31 1818第八章: 利用表达式语 ... -
《WebWork in action》第七章
2007-09-26 14:04 2037第七章: 使用result result是指action已执 ... -
《WebWork in action》第五章
2007-09-26 14:03 1287第5章: 使用interceptor增加功能 interce ... -
《WebWork in action》第四章
2007-09-26 13:59 2053第4章: 实现WebWork action action是W ... -
《WebWork in action》第三章
2007-09-26 13:57 2218第三章: 配置WebWork 一. 配置Action ... -
《WebWork in action》第二章
2007-09-26 13:56 1655第二章: WebWork方式的He ...
相关推荐
- **标签库的使用**:第九章讲述了自定义标签库的创建方法及其应用场景,使页面更加灵活且易于维护。 - **Velocity模板引擎**:第十章探讨了Velocity模板引擎的特点和使用方法,以及如何将其集成到WebWork项目中。 -...
根据提供的文件信息,我们可以提取并总结出关于《WebWork In Action》这本书的关键知识点。这些知识点主要围绕WebWork框架的核心概念、实现方式以及高级主题展开。 ### WebWork框架概述 **WebWork**是一款开源的...
第9章在spring中建立契约优先web服务 9.1介绍spring-ws 9.2定义契约(首先!) 9.3使用服务端点处理消息 9.3.1建立基于jdom消息的端点 9.3.2序列化消息载荷 9.4合并在一起 9.4.1spring-ws:全景视图 9.4.2将...
第9章 在Spring中建立契约优先Web服务 9.1 介绍Spring-WS 9.2 定义契约(首先!) 9.3 使用服务端点处理消息 9.3.1 建立基于JDOM消息的端点 9.3.2 序列化消息载荷 9.4 合并在一起 9.4.1 Spring-WS:全景视图 ...
虽然"WebWork in Action"的免费部分仅包含前三章,但这已经足够初学者了解WebWork的基本结构和工作原理。书中可能涵盖了以下主题: 1. **WebWork简介**:介绍WebWork的起源、设计理念以及在Java Web开发中的角色。 ...
第9章 在Spring中建立契约优先Web服务 9.1 介绍Spring-WS 9.2 定义契约(首先!) 9.3 使用服务端点处理消息 9.3.1 建立基于JDOM消息的端点 9.3.2 序列化消息载荷 9.4 合并在一起 9.4.1 Spring-WS:全景视图 ...
《Struts 2 in Action》是一本专注于Struts 2框架的权威技术指南,由业界专家撰写,旨在帮助开发者深入理解和高效使用这个流行的MVC框架。Struts 2是Java Web开发中的重要组件,它继承了Struts 1的优秀特性,并结合...
它是Apache软件基金会下的一个项目,基于WebWork的核心技术,旨在提供更稳定、高效的Web应用开发解决方案。本教程将带你深入理解Struts2的基础概念和核心特性,助你轻松入门。 Struts2的核心组件包括: 1. **...
通过阅读和实践"Structs2InAction"中的例子,你将能够掌握Struts2的核心概念和实践技巧,提升你的JavaEE开发能力。记得每个实例都要动手操作,这样才能更好地理解和吸收知识。在实践中遇到问题,不要害怕,因为解决...
7. **Plug-in机制**:Struts2的插件系统允许快速集成第三方库,如Hibernate、Spring等,增强了框架的可扩展性。 8. **配置方式**:Struts2提供了XML配置和基于注解的配置方式,开发者可以根据项目需求选择合适的...
<#assign mail="jsmith@other.com" in my> ${my.mail} l 输出结果: jsmith@acme.com jsmith@other.com l 数据模型中的变量任何地方都可见,也包括不同的名字空间,下面是修改的库: <p>Copyright ...