使用 开发者, ,我开始为工作中的一个项目开发一组网页。由于当时我对 JDev 不太了解,所以我跑到 Oracle 学习了一些教程。JDev 教程建议这样做 JSPX 代替 联合应用程序, ,但并没有真正解释原因。您正在开发 JSPX 页面吗?你为什么决定这样做?走 JSPX 路线有哪些优点/缺点?

有帮助吗?

解决方案

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

然而,也有缺点。例如,格式正确的 XML 必须转义小于号等内容,因此您的文件最终可能会包含以下内容:

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

XML 语法也可能更详细。

其他提示

在我看来,JSPX 有一些不方便的地方:

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

另一方面:

  1. 它迫使您编写正确的 XML,这比 JSP 更容易操作
  2. 工具可以执行即时验证,更快地发现错误
  3. 以我的拙见,更简单的语法

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

与 jsp 相比,JSPX 和 EL 使得包含 javascript 和嵌入式 java 代码变得更加困难且不自然。EL 是一种专门为表示逻辑定制的语言。

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

JDeveloper 开发人员大家好!

我使用 JSPX 页面已经有两年多了,而且我从来没有遇到过 JSPX 与 JSP 相对立的问题。我选择使用 JSPX 有点被迫,因为我使用 JHeadstart 自动生成 ADF Faces 页面,并且默认情况下,JHeadstart 在 JSPX 中生成所有内容。

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

正如 Spring 3.1 官方文档中所述

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

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

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

@马修-
ADF!我目前正在开发的应用程序有 90% 的表示层是由 mod PL/SQL 生成的。我开始研究一些新的屏幕,并希望研究可能适合我们架构的其他选项,而不会给其他开发人员带来太大的学习负担(增加系统的复杂性/破坏开发人员的系统心智模型)团队。我也是通过 ADF 接触到 JSPX 的。

我也看到了一个“面向未来”的观察……但不知道它的根据有多么充分。

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

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

大家对于 JSP 中的 scriptlet 有何看法?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top