`
weichao202
  • 浏览: 96437 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

[Webwork]标签简介(转载)

阅读更多
Webwork标签的三条规则:
1、所有String类型的属性值都会解析 %{...} 中间的字符;
2、所有非字符串类型的属性值都不会解析,而是直接当作一个OGNL表达式求值;
3、对于第2条规则的例外情况处理是:如果非字符串类型的属性值以 %{ 开始,并以 } 结束,则在对表达式求值之前这些字符会被截取出来。

一、通用标签
1. <ww:property value="Object" default="String" escape="true|false" />
用于获取结果属性的值,如果value未给定,将使用栈顶值。例如:
<ww:property value="user.userName" />
default:如果依据value属性无法得到具体值,则使用default设定的默认值;
escape:设定是否将输出内容进行HTML转义,例如:设为true设为true,则&转为&amp;
2. <ww:push value="Object" />
将对象压入值栈后直接对其进行多次操作,而不需要在每个与对象相关的表达式之前加上对象名称。例如:
<ww:push value="user" />
  <ww:property value="userName" />
  <ww:property value="userPsd" />
</ww:push>
3. <ww:set name="varName" value="Object" scope="" />
将值栈中的某个对象的值设置到一个scope(page, stack, application, session)中。如果值未给定,将使用栈顶值;如果scope未给定,使用“webwork”的缺省scope。使用ww:set标签,可以在JSP中创建一个自己命名的临时变量指向值栈中的某个对象,然后使用#varName的形式引用该变量。例如:
<ww:set name="s" value="#session" />
  <ww:property value="#s.userName" />
  <ww:property value="#s.userPsd" />
</ww:set>
name:在一个指定的作用域内被赋值的变量名;
value: 用于赋值的表达式;
scope: 可选的值为:application, session, request, page或default(即action context)
另外,ww:set还可以设置常量引用,如:
<ww:set name="user" value="%{'jim'}" />
<ww:property value="#user" />
4. <ww:date name="" nice="" format="" />
用于输出date类型属性值的特殊标签。
name:取值的ognl表达式;
nice:是否使用易读(readable notations)模式;
format:设定显示格式,例如“yyyy-MM-dd hh:mm”;
例如:
<ww:date name="person.birthday" format="dd/MM/yyyy" />
按照“dd/MM/yyyy”格式显示。
<ww:date name="person.birthday" format="%{getText('some.i18n.key')}" />
将format定义到i18n文件中的方式,这个很常用。
<ww:date name="person.birthday" nice="true" />
使用易读(readable notations)的模式。
<ww:date name="person.birthday" />
使用默认的格式输出。
其中显示的规则如下:
1、如果制定了nice="true"则优先以易读(readable notations)的模式显示;
2、如果nice="false"则按照指定的format显示;
3、如果上面两个属性都没有指定,则从默认的资源文件中寻找webwork.date.format这个i18n的key,按照它显示;
4、如果还没有找到则按照DateFormat.MEDIUM格式显示;
5、特别之处:如果从ValueStack没有找到值,则默认显示空白(而不是null);
5. <ww:url value="" action="" method="" />
用于构造一个编码的URL,例如:
<ww:url />返回当前页的相对路径,如果当前页在web根目录下则返回“/”;
<ww:url value="http://www.xxx.com" />
返回结果:http://www.xxx.com
<ww:url action="user" method="login" />
返回结果:/user!login.action
也可以通过使用ww:param加上参数,如:
<ww:url action="user" method="login">
  <ww:param name="userName" value="%{'kk'}" />
  <ww:param name="password" value="2008" />
</ww:url>
返回结果:/user!login.action?password=2008&userName=kk
注:在ww:param中,如果value的值存在非数字非布尔型字符,必须加上单引号,数字或布尔型不用。
6. <ww:param name="" value="" />
设置父标签的参数。仅用于其他标签内部,用于设置父标签某些属性的值,例如用于ww:url中。

二、组件化标签
1. <ww:action id="" name="actionName" executeResult="true|false" ignoreContextParams="true|false" />
执行action并根据设定返回相应的数据。
id:给Action返回的ValueStack命名,便于在页面后面的部分引用,如果不写则默认为调用的Action的名字;
name:调用的Action的name;
executeResult:true或false,是否渲染Action的View。默认为false;
ignoreContextParams:Boolean值,request参数是否在Action被调用时所包括。
用法1(包含):
<ww:action name="user" executeResult="true">
  <ww:param name="userName" value="%{'kk'}" />
  <ww:param name="password" value="2008" />
</ww:action>
用法2(引用):
<ww:action id="u" name="user">
  <ww:param name="userName" value="%{'kk'}" />
  <ww:param name="password" value="2008" />
</ww:action>
<ww:property value="#u.user.userName" />
<ww:property value="#u.user.userPsd" />
2. <ww:bean id="" name="Bean" />
创建一个JavaBean, 初始化它的属性并放入ActionContext以便后续使用.例如:
<ww:bean id="now" name="java.util.Date" />
<ww:property value="#now" />
3. <ww:include value="" />
包含另一个页面或action. 例如:
<ww:include value="/test.jsp" />
或:<ww:include value="/test.action" />

三、流程控制标签
<ww:if test="true|false" />
<ww:else />
<ww:elseif test="true|false" />
例如:
<ww:if test="1==3">
1=3
</ww:if>
<ww:elseif test="1==2">
1=2
</ww:elseif>
<ww:else>
都错了!
</ww:else>

四、迭代标签
1. <ww:iterator value="" status="" />
用法举例:
<ww:iterator value="list">
  Name: <ww:property value="userName" />&nbsp;
  Password: <ww:property value="userPsd" /><br/>
</ww:iterator>
另外,还可以通过属性status设置状态变量,用于根据状态控制输出。例如:
<ww:iterator value="list" status="s">
  Name: <ww:property value="userName" />&nbsp;
  Password: <ww:property value="userPsd" />
  <ww:if test="#s.odd"><!--如果当前行是奇数行-->
    ^_^
  </ww:if><br/>
</ww:iterator>
除了odd外,还有其他状态属性可用:
odd 是否奇数行;
even 是否偶数行;
index 当前行的序号,从0开始
count 当前行数(#status.count=#status.index+1)
first 是否第一行
last 是否最后一行
modules(int) 当前行数取模
2. <ww:generator val="" separator="" count="" />
由val属性提供的值产生一个迭代器,例如:
<ww:generator val="%{'aaa,bbb,ccc,ddd,eee'}" separator="," count="3">
<ww:iterator>
<ww:property /><br/>
</ww:iterator>
</ww:generator>
以上代码生成一个迭代器并通过iterator标签显示结果。
separator 指定分隔符;
count 指定生成的迭代器的行数;
3. <ww:append id="" />
ww:append常和Iterator标签一起使用, 功能就是将不同的迭代器组合在一起,使一个迭代器迭代完成后转移到下一个迭代器中继续迭代,注意和ww:merge的区别.用法如下:
<ww:append id="lists">
  <ww:param value="%{list1}" />
  <ww:param value="%{list2}" />
  <ww:param value="%{list3}" />
</ww:append>
<ww:iterator value="%{#lists}">
  Name: <ww:property value="userName"/>&nbsp;
  Password: <ww:property value="userPsd"/><br/>
</ww:iterator>
4. <ww:merge id="" />
ww:merge标签的作用是合并迭代器,合并后的迭代器迭代时依次调用每一个被合并的迭代器(除非这个迭代器已经迭代完毕),注意和ww:append的区别,例如有三个list被合并,每一个有三个元素,以下就是调用顺序:
1. 第一个list的第一个元素
2. 第二个list的第一个元素
3. 第三个list的第一个元素
4. 第一个list的第二个元素
5. 第二个list的第二个元素
6. 第三个list的第二个元素
7. 第一个list的第三个元素
8. 第二个list的第三个元素
9. 第三个list的第三个元素
用法如下:
<ww:merge id="lists">
  <ww:param value="%{list1}" />
  <ww:param value="%{list2}" />
  <ww:param value="%{list3}" />
</ww:merge>
<ww:iterator value="%{#lists}">
  Name: <ww:property value="userName"/>&nbsp;
  Password: <ww:property value="userPsd"/><br/>
</ww:iterator>
5. <ww:subset source="" count="" start="" />
取一个迭代器的子集,例如:
<ww:subset source="list" count="5" start="2">
<ww:iterator>
  Name: <ww:property value="userName"/>&nbsp;
  Password: <ww:property value="userPsd"/><br/>
</ww:iterator>
</ww:subset>
source: 源集合;
count: 指定子集的元素个数;
start: 子集在源集合中的开始索引(从0开始);
6. <ww:sort comparator="" source="" />
用传入的Comparator对List进行排序。例如:
<ww:sort comparator="myComparator" source="myList">
  <ww:iterator>
    <!-- do something with each sorted elements -->
    <ww:property value="..." />
  </ww:iterator>
</ww:sort>

五、UI标签
1. <ww:form action="" method="post|get" />
2. <ww:textfield name="" value="" label="" labelPosition="" required="" requiredposition="" />
3. <ww:password name="" value="" label="" labelPosition="" required="" requiredposition="" show="" showPassword="" />
4. <ww:hidden name="" value="" label="" labelPosition="" required="" requiredposition="" />
5. <ww:textarea rows="" cols="" name="" value="" label="" labelPosition="" required="" requiredposition="" wrap="" />
6. <ww:checkbox name="" value="" label="" labelPosition="" required="" requiredposition="" />
7. <ww:checkboxlist name="" value="" label="" labelPosition="" required="" requiredposition="" list="" listKey="" listValue="" />
8. <ww:select name="" list="#{'01':'Mon','02':'Tue','03':'Wed'}" listKey="" listValue="" label="" labelPosition=""
           required="" requiredposition="" emptyOption="true|false" headerKey="" headerValue="" />
9. <ww:optgroup />
10.<ww:combobox />
本标签使用一个text类型的INPUT和一个SELECT组合在一起提供组合框(Combo Box)的功能. 可以通过使用SELECT控件将文本输入到INPUT控件中, 或直接在文本框中输入文本.
11.<ww:doubleselect />
创建两个HTML Select元素, 第二个列表显示的内容随第一个列表的选中的选项变化.
12.<ww:updownselect />
创建一个元素Select列表组件, 带有可以上下移动选项元素的按钮. 当表单提交时, 列表中的元素全部被选中并按照排列顺序(从顶至底)被提交.
13.<ww:optiontransferselect />
创建一个选项转移列表组件, 由两个select标签以及其间的用于将选项在两个select之间相互移动的按钮. 表单提交时会自动选中全部选项.
14.<ww:radio name="" value="" label="" labelPosition="" required="" requiredposition="" list="" listKey="" listValue="" />
15.<ww:file name="" label="" labelPosition="" required="" requiredposition="" />
16.<ww:datepicker />
日期选择器。
17.<ww:richtexteditor />
生成一个基于FCK编辑器(http://www.fckeditor.net)的富文本编辑器.
18.<ww:component />
创建一个自定义的控件.
19.<ww:token />
防止多次提交表单.
使用token标签能帮助解决多次提交表单的问题.此标签需要你启用TokenInterceptor 或者TokenSessionInterceptor拦截器.
ww:token标签只不过放置了一个隐藏的表单元素,它包含一个唯一的令牌.
20.<ww:submit value="" />
21.<ww:reset value="" />
22.<ww:label />
23.<ww:head />
24.<ww:actionmessage />
如果存在的话输出Action消息,它的输出布局依赖于使用的主题(theme).
25.<ww:actionerror />
如果存在的话输出Action错误消息,它的输出布局依赖于使用的主题(theme).
26.<ww:fielderror />
如果存在的话输出字段的出错信息,它的输出布局依赖于使用的主题(theme).

六、国际化标签
1. <ww:text name="" />
显示特定语言的文本。如果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}。
2. <ww:i18n name="" />
将某个资源包的内容压入栈中,让你可以在标签内部访问与资源包相关的i18n的资源。例如:
<ww:i18n name="org.hibernate.auction.myBundle">
  <ww:text name="someKey" />
</ww:i18n>
代码将从myBundle这个资源包中查找someKey对应的文本,而不是默认的资源包。

七、其他标签
1. <ww:a href="" />
2. <ww:table modelName="" sortable="" sortColumn="" sortOrder="" />
3. <ww:div />
4. <ww:panel />
输出一个tabbedPanel的面板.
5. <ww:tabbedPanel />
tabbedpanel部件是一个AJAX组件,每个选项卡可以是本地的内容或者远程的内容(每次用户选择这个选项时刷新).
6. <ww:tabbedpane />
不推荐使用此标签,建议使用ww:tabbedPanel。
7. <ww:tree />
输出一个支持AJAX的树型组件.
8. <ww:treenode />
输出一个支持AJAX树型组件的节点.
9. <ww:debug />

原文:http://teddyboy200382.blog.163.com/blog/static/3201120020081010115922836/
分享到:
评论

相关推荐

    WebWork标签手册

    ### WebWork标签手册详解 #### 数据标签:连接前端与后端的桥梁 WebWork框架作为Struts的一个替代品,提供了一系列强大的标签库,用于简化Web应用的开发过程。其中,数据标签尤其关键,它们不仅能够从值栈中提取...

    webwork标签

    WebWork标签库分为多个类别,包括通用标签、组件化标签、流程控制标签、迭代标签、UI标签、VUI标签以及国际化支持标签。 1. **通用标签**: - `&lt;ww:property&gt;`:用于获取结果的属性值,如果未指定值,将从值栈顶部...

    WebWork ww标签

    ### WebWork WW标签库简介 WebWork WW标签库是专门为WebWork框架设计的一组自定义标签,用于在JSP页面上进行动态数据展示、控制流操作和表单元素渲染。WW标签库提供了丰富的标签,例如`&lt;ww:if&gt;`、`&lt;ww:iterator&gt;`、...

    Webwork标签库CHM

    Webwork标签库CHM是一个关于WebWork框架中标签库的参考文档,主要涵盖了WebWork框架中用于构建动态网页的自定义标签的相关知识。WebWork是一个Java Web开发框架,它简化了MVC(模型-视图-控制器)模式的实现,提高了...

    WebWork标签使用说明

    chm格式的webwork标签帮助文档,英文的

    WebWork标签库

    ### WebWork标签库详解 #### 引言 WebWork是一个基于MVC模式的Java Web应用框架,它提供了丰富的标签库来简化页面开发过程。本文将深入解析WebWork标签库中的各类标签,帮助开发者更好地理解和应用这些标签,提高...

    webwork标签的使用和介绍

    以下是对WebWork标签的详细介绍: 1. **通用标签**: - `&lt;ww:property&gt;`:用于获取ActionResult中的属性值,例如`&lt;ww:property name="pname" /&gt;`显示Person对象的pname属性值。 - `&lt;ww:param&gt;`:设置父标签的参数...

    webwork

    7. **标签库**:WebWork 自带一套丰富的标签库,可以方便地在JSP页面中使用,减少硬编码,提高开发效率。 8. **持久化支持**:WebWork 可以与各种持久化框架如Hibernate、iBatis等集成,方便进行数据库操作。 9. *...

    WebWork UI标签

    WebWork UI标签是一种用于构建Web应用程序用户界面的组件,它提供了丰富的功能,使得开发者能够更加便捷地创建交互式的Web页面。WebWork是一个不绑定特定视图技术的框架,支持多种模板语言,如JSP、Velocity和...

    Webwork2_guide

    Webwork2是一个基于Java的开源框架,主要用于构建动态、交互式的Web应用程序。它以其强大的MVC(模型-视图-控制器)架构而闻名,能够帮助开发者有效地组织代码,提高开发效率,同时保持良好的可维护性和扩展性。...

    WebWork 简介

    在WebWork简介.htm和WebWork简介.files中,你可能会找到更多关于WebWork的具体用法、示例代码以及配置信息,这些都能帮助你更好地理解和使用WebWork。总的来说,WebWork作为一款优秀的Web开发框架,它的设计理念和...

    WEBWORK

    2. **Taglib** 配置:`jsp-config` 部分定义了一个 JSP 标签库(Taglib),即 WebWork 的标签库。`taglib-uri` 指定标签库的唯一标识符,`taglib-location` 指定包含 TLD(Tag Library Descriptor)的 JAR 文件位置...

    webwork 标签手册

    其中,WebWork标签库作为框架的一部分,提供了丰富的自定义标签,可以帮助开发者更方便快捷地实现页面逻辑。本文档将详细介绍WebWork中的几个核心标签,包括`data`标签、`property`标签、`set`标签、`push`标签以及`...

    webwork-1.4-src.zip_webwork_webwork s_webwork.zip_webwork1.4.zip

    7. **标签库**:WebWork提供了一套自定义的JSP标签,如`&lt;ww:property&gt;`、`&lt;ww:if&gt;`等,这些标签简化了视图层的编写,提高了代码的可读性。 8. **插件系统**:WebWork支持插件扩展,开发者可以方便地添加自定义功能...

    Webwork使用简介

    Webwork 使用简介 Webwork 是一个基于网络的微积分习题系统,它旨在利用信息科技的辅助,强化微积分作业的功能。Webwork 是世界上唯一一套有填充题题型(答案甚至可以为文字符号形式,不一定为数字型式)的微积分...

    struts与webwork的jar包无冲突版 自定义标签无冲突

    WebWork引入了自己的标签库,包括一些与Struts2标签类似的组件。当同时引入Struts和WebWork的jar包时,由于它们的标签库可能有重叠,可能会导致解析JSP页面时出现冲突,尤其是在Unix环境中,这个问题可能更为突出。 ...

Global site tag (gtag.js) - Google Analytics