为什么可以';t JSP 2.0标记文件的主体内容为;JSP";?

为什么可以';t JSP 2.0标记文件的主体内容为;JSP";?,jsp,tags,jsp-tags,Jsp,Tags,Jsp Tags,“新的”JSP2.0标记文件标记非常有用,在大多数情况下(至少我见过),它们提供了比Java类更可读的格式。然而,尽管标记文件可以完成Java类标记所能做的几乎所有事情,但有一件事是它们不能做的:如果您使用的是旧式标记,即从BodyTag派生的标记,那么它们可以“编写”正文内容(即“) 因为JSP片段不支持Scriptlet,SimpleTag的 就我个人而言,如果可以的话,我会尽量避免使用Java来编写标记,而只使用新的.tag样式。您可以将Java代码合并到此类标记文件中,尽管一般来说,如果

“新的”JSP2.0标记文件标记非常有用,在大多数情况下(至少我见过),它们提供了比Java类更可读的格式。然而,尽管标记文件可以完成Java类标记所能做的几乎所有事情,但有一件事是它们不能做的:如果您使用的是旧式标记,即从BodyTag派生的标记,那么它们可以“编写”正文内容(即“)

因为JSP片段不支持Scriptlet,SimpleTag


就我个人而言,如果可以的话,我会尽量避免使用Java来编写标记,而只使用新的.tag样式。您可以将Java代码合并到此类标记文件中,尽管一般来说,如果您被迫这样做,您可能是在做错事。

JSP标记是以这种方式设计的,这样就可以完全分离表示层和.JSP页面背后的代码应该由设计师编辑,因此使用Java代码是不合适的


我认为您需要根据这一理念调整您的编码习惯。您可以将所有Java代码移动到您的bean中。在那里做任何需要做的事情,然后将适当的bean传递到JSP页面。异常处理也应该在那里。如果这还不够,您可以创建自己的标记来使用。

”如果您使用的是旧式标记,那么它们可以“嘿,我知道;这就是我了解主体内容JSP的原因:-”),但我希望使用标记文件实现类似的功能;正如您所指出的,它们是比Java类更好的创建标记的机制“因为我的JSP中有JSP内容。。。我不明白。ELScript和JSTL可以做一些事情,但不是全部。此外,我被大量使用脚本的遗留页面所困扰,因此即使我可以在没有脚本的情况下重新完成所有工作。。。我不能,因为这将花费太长的时间。我知道这是一个旧的线程,我在挖掘JSP标记问题。。。但在这种情况下,为什么要升级?您可以坚持使用旧的JSP格式,或者有其他要求?我想另一种表达这个问题的方式是:为什么标记文件标记不能创建非简单(“经典”)标记(是否存在一些技术限制)?是否有任何方法(即使它需要诉诸“黑客”)来使用标记文件创建“经典”标记?所有回答都说“只需避免在JSP中编写脚本”的问题是,我们的整个应用程序(七年的代码)都是基于带脚本的JSP构建的(当然还有类,但没有明确的模型/视图/控制器分离)。因此,不幸的是,我不能将我们已经编写的所有内容都扔出窗外。这给了我一个选择:使用类开发所有新标记(wince)或者在我们现有的页面上找到一些使用标记文件的方法…而这个堆栈溢出查询是我试图找出如何实现后者的方法。另外,我只是想澄清一下,如果真的不可能有带有脚本的标记文件标记,我将把这个问题上的悬赏奖励给任何能最好地解释为什么没有w的人有可能。但我真的希望有人想出了一个办法(同样,即使它需要一个“黑客”解决方案,比如将主体内容设置为“tagdependent”,然后以某种方式通过servlet反馈该内容)。