2

“新的”JSP 2.0 标记文件标记非常有用,并且在大多数情况下(至少我见过)它们提供了比 Java 类更易读的格式。然而,虽然标记文件几乎可以完成Java 类标记可以做的所有事情,但有一件大事是它们无法做到的:具有“脚本”正文内容(即,开始和结束标记之间的“<%”内容)。

所以,我的问题是多方面的:

  1. 有谁知道为什么(从设计的角度)这是?由于它们的实现方式或其他原因,标签文件是否天生就不可能具有此类内容?
  2. 有谁知道是否有任何未来计划允许在标记文件中使用 body-content="JSP" (可能在 JSP 标准的未来版本中)?
  3. 有谁知道“破解”标记文件以允许它们具有脚本内容的任何方法(例如通过具有无脚本的正文内容,然后以某种方式处理内容)?

基本上我的梦想是有一天编写标签文件,如果有人放一个不会导致异常的标签文件

<%= myVar %>

在里面,我只是想确定那个梦想是否无望。

4

2 回答 2

3

JSP 标记是这样设计的,以便在表示层和后面的代码之间完全分离关注点。JSP 页面应该由设计人员编辑,因此不适合使用 Java 代码。

我想你需要在这种哲学中调整你的编码习惯。您可以将所有 Java 代码移动到 bean。在那里做任何需要的事情,然后将适当的 bean 传递给 JSP 页面。异常处理也应该去那里。如果这还不够,您可以随时创建自己的标签来使用。

于 2009-05-26T06:10:30.927 回答
2

如果您使用旧式标签(即从 BodyTag 派生),它们可以。然而,SimpleTag 实现不能。

因为 JSP 片段不支持 scriptlet,所以SimpleTag的不能是“JSP”

如果可以的话,我个人会避免使用 Java 来编写标签,而只使用新的 .tag 样式。您可以将 Java 代码合并到此类标记文件中,但通常如果您被迫这样做,您可能做错了什么。

于 2009-05-22T23:41:27.537 回答