This page last changed on Oct 04, 2004 by kousuke.
在使用JSP绘制视图时, 你可以选择使用脚本(Scriplet)或标签访问活动(action)的数据. 标签是推荐使用的方式.
活动数据可以通过对象值栈(Value Stack)进行访问. 先面的例子完成了与第三课第二个例子(Supplying Data to the Action)中的结果页面相同的工作, 但使用了脚本:
<%@ page import="com.opensymphony.xwork.util.OgnlValueStack" %>
<html>
<head>
<title>WebWork Tutorial - Lesson 4.1 - Lesson 3's example modified</title>
</head>
<body>
<%
OgnlValueStack stack = (OgnlValueStack)request.getAttribute("webwork.valueStack");
out.write("Hello, " + stack.findValue("person"));
%>
</body>
</html>
无论如何, 推荐使用WebWork标签而不是脚本. 例如, <ww:property />标签准确的完成了上面脚本的工作, 同时具有更清晰的语法并处理了当值栈不存在的情况. 我们已经在第三课的例子中展示了如何使用标签访问活动的属性. 本节介绍并举例说明WebWork标签库的用途, 它分为七大类:
- 通用标签: 最常用, 最基本的标签;
- 组件化标签: 鼓励视图的组件化;
- 流程控制标签: 在JSP页面中管理控制流程;
- 迭代标签: 迭代元素并操作可迭代(iterable)的对象;
- UI标签: 生成HTML表单字段和控件;
- VUI标签: 需要自愿者来编写这部分;
- 国际化支持标签: 提供国际化视图支持.
<ww:property /> | 获取结果的属性值. 如果值未指定, 将返回栈顶值. |
<ww:push /> | 将一个值压入值栈. |
<ww:param /> | 设置父标签的参数. 仅用于其他标签内部, 用于设置父标签某些属性的值. |
<ww:set /> | 将值栈中的某个对象的值设置到一个scope(page, stack, application, session)中. 如果值未给定, 将使用栈顶值. 如果scope未给定, 使用"webwork"的缺省scope. |
<ww:url /> | 构建一个编码的URL. |
进一步阅读: 非UI类标签
<ww:action /> | 在标签库的上下文环境中执行一个活动. 标签的主体用来显示活动执行的结果. |
<ww:bean /> | 创建一个JavaBean, 初始化它的属性并放入ActionContext以便后续使用. |
<ww:include /> | 包含另一个页面或活动. |
进一步阅读: 非UI类标签
这个if-else的标签集合就像if-else脚本一样.
<ww:if /> | 有条件执行路径. 换言之, 如果布尔条件是true的话, 就运算标签主体内容. |
<ww:else /> | if标签的反向执行路径. 换言之, 如果前一个if标签的布尔条件是false的话, 就运算标签主体内容. |
<ww:elseif /> | if标签的反向执行路径. 换言之, 如果前一个if标签的布尔条件是false且本标签的布尔条件是true的话, 就运算标签主体内容. |
进一步阅读: 非UI类标签
<ww:iterator /> | 在一个集合(collection)上迭代. |
<ww:generator /> | 生成迭代器(Iterator). |
<ww:append /> | 添加几个迭代器. |
<ww:subset /> | 获取一个迭代器的子集. |
<ww:merge /> | 合并几个迭代器. |
<ww:sort /> | 对迭代器进行排序. |
进一步阅读: 非UI类标签
UI标签包装了HTML控件以便与核心框架紧密集成. 这些标签设计目标是最小化代码中的逻辑部分, 并用一个模版系统代理最终的HTML绘制. UI标签试图覆盖最普遍的情景(scenario), 并提供了一个component标签以创建定制组件. UI标签还内建支持显示内嵌的[inline, 参考C++ 中的inline定义]错误信息.对UI标签的一些细节内容的描述如它们如何工作, 如何利用模版定制它们的外观, 如何创建定制组件等等, 将在另一课中介绍. 跳转到WebWork的UI标签教程.
<ww:audio /> | ??? |
<ww:prompt /> | ??? |
<ww:filled /> | ??? |
<ww:log /> | ??? |
需要自愿者编写这一部分.
<ww:text /> | 输出一个经过国际化处理的字符串. |
<ww:i18n /> | 将国际化资源包(resource bundle)放入值栈中, 为text标签使用. |
进一步阅读: UI标签 上一课 | 下一课
|