为了演示 el 的用法,我们介绍了 core 库中的三个标记:
示例应用程序
为了演示 jstl 标记,我们将使用来自一个工作应用程序的示例,本系列中余下的文章都将使用此应用程序。由于基于 java 的 weblog 日渐流行及为人们所熟悉,因此我们将出于此目的使用一个简单的基于 java 的 weblog;参阅参考资料以下载该应用程序的 jsp 页面和源代码。weblog(也称为 blog)是一种基于 web 的简短注释的日志,这些注释是有关 weblog 的作者所感兴趣的主题,通常带有与 web 上其它地方的相关文章及讨论的链接。图 1 中显示了该应用程序正在运行时的抓屏。

虽然完整的实现需要二十四个 java 类,但在表示层中却只涉及 weblog 应用程序中的两个类,entry 和 userbean。这样,对于理解 jstl 示例而言,只有这两个类比较重要。图 2 显示了 entry 和 userbean 的类图。

entry 类表示 weblog 中一个标有日期的项。其 id 属性用于在数据库中存储及检索该项,而 title 和 text 属性则表示该项的实际内容。created 和 lastmodified 属性引用了 java 语言中 date 类的两个实例,分别用来表示最初创建该项的时间和最后编辑该项的时间。author 属性引用了标识该项的创建者的 userbean 实例。
userbean 类存储了有关应用程序的已认证用户的信息,如用户名、全名和电子邮件地址。该类还包含一个用于与相关数据库进行交互的 id 属性。其最后一个属性 roles 引用一列 string 值,这列值标识与相应用户相关的、特定于应用程序的角色。对于 weblog 应用程序,相关的角色是“user”(所有应用程序用户常用的缺省角色)和“author”(该角色指定可以创建和编辑 weblog 项的用户)。
流控制
由于可以用 el 替代 jsp 表达式来指定动态属性值,因此页面创作人员无需使用脚本编制元素。因为脚本编制元素可能是引起 jsp 页面中维护问题的主要原因,所以 jstl 的主要优点就在于提供了这样简单(且标准)的替代方法。
el 从 jsp 容器检索数据,遍历对象层次结构,然后对结果执行简单的操作。不过,除了访问和操作数据之外,jsp 脚本编制元素的另一个常见用法是流控制。尤其是,页面创作人员常借助 scriptlet 来实现迭代或条件内容。然而,因为这样的操作超出了 el 的能力,所以 core 库提供了几个定制操作来管理流控制,其形式有迭代、条件化和异常处理。
迭代
在 web 应用程序环境中,迭代主要用于访存和显示数据集,通常是以列表或表中的一系列行的形式显示。实现迭代内容的主要 jstl 操作是 进行整数范围迭代用到了清单 1 中所示的 清单 1. 通过 body content 当出现 step 时,它也必须是整数值。它指定每次迭代后索引的增量。这样,迭代索引从 begin 属性的值开始,以 step 属性的值为增量进行递增,在迭代索引超过 end 属性的值时停止迭代。注:如果省略了 step 属性,那么步长缺省为 1。 如果指定了 var 属性,那么将会创建一个带有指定名称的并限定了作用域的变量,并将每次迭代的当前索引值赋给该变量。这一限定了作用域的变量具有嵌套式可视性 ― 只可以在 清单 2. 使用 如图 3 中所示,上面的示例代码生成了一张表,显示前五个偶数及其平方。这是通过将 begin 和 step 属性值指定为 2,而将 end 属性值指定为 10 实现的。此外,用 var 属性创建用于存储索引值的限定了作用域的变量, 在对集合的成员进行迭代时,用到了 清单 3. 通过 body content 表 1. 可以使用 begin、end 和 step 属性来限定在迭代中包含集合中哪些元素。和通过 清单 4 显示了用来迭代集合的 清单 4. 使用 不论是对整数还是对集合进行迭代, 表 2. looptagstatus 对象的特性 清单 5 显示了关于如何使用 varstatus 属性的一个示例。这个示例修改了清单 4 中的代码,将 weblog 项的编号添加到显示 weblog 标题(title)的表行。它是通过为 varstatus 属性指定一个值,然后访问所生成的限定了作用域的变量的 count 特性来实现这一点的。结果显示在图 5 中。 清单 5. 使用 varstatus 属性来显示 weblog 项的数目 扫描关注微信公众号



关于我们
公司介绍
最新动态
联系我们
产品与服务
域名注册
jsp空间
php空间
常见问题
空间操作手册
网站备案相关
退款相关问题
技术支持
技术 QQ :178966803
联系电话:13616026886
联系邮箱:fjjsp@vip.163.com
闽公网安备 35060202000074号