52

使用JDeveloper,我开始为工作中的项目开发一组网页。由于当时对 JDev 了解不多,所以跑到 Oracle 来学习一些教程。JDev 教程建议使用JSPX而不是JSP,但没有真正解释原因。你在开发 JSPX 页面吗?你为什么决定这样做?走 JSPX 路线的优点/缺点是什么?

4

8 回答 8

55

主要区别在于 JSPX 文件(官方称为“JSP 文档”)可能更易于使用,因为对格式良好的 XML 的要求可能允许您的编辑器在您键入时识别更多的拼写错误和语法错误。

但是,也有缺点。例如,格式良好的 XML 必须转义诸如小于号之类的内容,因此您的文件最终可能包含以下内容:

<script type="text/javascript">
   if (number &lt; 0) {

XML 语法也可能更冗长。

于 2008-08-26T15:59:40.030 回答
23

JSPX 有一些不方便之处,在我的脑海中:

  1. 很难生成某些动态内容;尤其是 生成具有可选属性的 HTML 标记(即或取决于条件)。在我开始做 JSPX 的那一天,应该解决这个问题的标准 JSP 标签并不能正常工作。
  2. 没有了 :-p
  3. 您真的很想将所有 Javascript 放在单独的文件中(或使用 CDATA 部分等)。恕我直言,无论如何你都应该使用 jQuery,所以你真的不需要 onclick 等属性......
  4. 工具可能无法正常工作;也许您的 IDE 不支持普通 JSP 之上的任何内容。
  5. 在 Tomcat 6.x 上,至少我尝试过的版本/配置,生成的输出没有任何格式;只是一个小烦恼,虽然

另一方面:

  1. 它强制你编写正确的 XML,它比 JSP 更容易操作
  2. 工具可能会执行即时验证,更快地发现错误
  3. 以我的拙见,语法更简单
于 2008-10-21T23:02:30.747 回答
12

为什么应该使用 jspx 而不是 jsp 的完全不同的推理方式:

JSPX 和 EL 使得包含 javascript 和嵌入的 java 代码比 jsp 更难做,也更不自然。EL 是一种专门为表示逻辑量身定制的语言。

所有这些都促使您更清晰地分离 UI 渲染和其他逻辑。在 JSP(X) 页面中嵌入大量代码的缺点是几乎不可能轻松测试,而实践这种关注点分离可使您的大部分逻辑完全可单元测试。

于 2009-11-19T07:25:49.713 回答
6

您好 JDeveloper 开发人员!

我已经使用 JSPX 页面两年多了,我从来没有遇到过任何问题,因为它们是 JSPX 反对 JSP。因为我使用 JHeadstart 自动生成 ADF Faces 页面,而默认情况下,JHeadstart 在 JSPX 中生成所有内容,所以我选择使用 JSPX 有点勉强。

JSPX 指定文档必须是格式良好的 XML 文档。这允许东西正确有效地解析它。我听说开发人员说这有助于您的页面与 JSP 相比更加“面向未来”。

于 2008-08-26T14:50:36.407 回答
6

如 Spring 3.1 官方文档中所述

“Spring 为 JSP 和 JSTL 视图提供了几个开箱即用的解决方案。”

您还必须考虑 JSPX 旨在生成纯 XML 兼容输出这一事实。因此,如果您的目标是 HTML5(可以与 XML 兼容,但会增加复杂性,请参阅我的下一条评论),如果您使用 Eclipse IDE,那么实现目标会有些困难……如果您的目标是生成 XHTML,那么选择 JSPX 和 JDeveloper会支持你...

在我们的一个 cie 项目中,我们使用 JSP 和 JSPX 制作了 POC,并制作了 PROS 和 CONS,我个人的建议是使用 JSP,因为我们发现以非 XML 方式生成 HTML5 的限制性和自然性要小得多,而且限制性也较小和更紧凑的语法。我们更喜欢选择限制较少的内容,并在 jsp 文件中添加“最佳实践”建议,例如“不要将 java scriptlet”。(顺便说一句,JSPX 还允许您使用 jsp:scriplet 而不是 <% ... %> 放置 scriplets)

于 2012-08-09T13:32:28.293 回答
2

@Matthew-
ADF!我目前正在处理的应用程序有 90% 的表示层由 mod PL/SQL 生成。我开始在几个新屏幕上工作,并想研究可能适合我们架构的其他选项,而不会给其他开发人员带来太多的学习负担(增加系统的复杂性/破坏开发人员的系统心理模型)团队。所以 ADF 也是我遇到 JSPX 的方式。

我也看到了一个“未来证明”的观察结果......但不知道这是多么有根据。

于 2008-08-26T15:07:40.047 回答
2

JSPX 也是 Spring MVC / Spring Web Flow 中推荐的视图技术。

于 2010-03-10T18:09:55.160 回答
0

另外,我在 JSPX 中发现的另一个问题是当您想要使用 scriptlet 时。我同意干净的代码通常是好的,而 JSP 中的 Java 逻辑通常是不好的,但是在某些情况下,您希望使用实用程序函数返回字符串值或 TagLib 或模型(请求属性)会过大.

大家对 JSP 中的 scriptlet 有什么看法?

于 2014-05-12T08:55:13.777 回答