6

有什么比 JSP 更安全的吗?我没有通过谷歌找到任何有意义的答案。我们目前使用 Spring MVC 框架和 JSP 来呈现 HTML。我开始讨厌 JSP 呈现的动态特性,因为您引用了类似的模型,${model.someAttribute}但无法判断该属性是否在给定模块中可用或指定模板期望的模型类型。重构模型的 getter 变得非常困难,因为 Eclipse 不知道哪些模板使用该模型,也无法将 getter 与模板中的属性访问器相关联。

是否有一种模板技术,它既比通过命令式代码吐出 HTML 代码更丑,又比 JSP 更安全?

4

6 回答 6

2

您可以使用类型提示,例如 jsp:useBean 和 JSP 标记文件的属性声明中的type 属性(可能在其他地方,如 JSTL 标记)。然后,IntelliJ 将为您完成所有基于静态类型的良好工作(准确的代码完成建议、重构、查找用法、显示快速 javadoc 等)。

我最近刚刚在JSP 标记文件的上下文中写过这个。

于 2013-04-18T19:13:06.600 回答
0

Lift(基于Scala)提供了一个非常好的模型,将 HTML 布局与实际应用程序代码(称为片段)很好地分离。虽然进入壁垒一开始可能看起来很高,但从长远来看,收益确实很大。一大优点是它在 JVM 上运行,因此您可以重用大部分 Java 库和其他代码。

于 2013-02-21T22:13:31.953 回答
0

我相信JXT的目标包括 XSS 安全和类型模型安全,并且它被设计为易于从 JSP 过渡到。

他们的管道描述解释说,他们的表达式更接近于 Java 表达式,因此如果您的表达式类型不匹配,您将获得 Java 式类型错误。

于 2013-02-21T22:26:31.507 回答
0

我认为Rocker正是您一直在寻找的。它是编译的、类型安全的和快速的。

于 2019-12-18T06:12:40.247 回答
0

免责声明:我是Hepek的作者。目前,它仅支持 Play 框架。

Scalatags 通过构造为您提供安全的 HTML。最重要的是,Hepek 有非常好的 API 用于构建表单、网格、代码突出显示等。基本上,它只是 Scala,没有模板解析,不用担心变量是否存在.. :)

于 2019-06-20T16:33:50.487 回答
0

实际上并没有使用它,但 Twirl ( https://www.playframework.com/documentation/2.5.x/JavaTemplates ) 称自己为“基于 Scala 的类型安全模板引擎”(显然可以在 Play for Java 中使用) .

引用:

Twirl 是一个基于 Scala Play 的类型安全模板引擎,它是一个强大的基于 Scala 的模板引擎,其设计灵感来自 ASP.NET Razor。具体是:

紧凑、富有表现力和流畅:它最大限度地减少了文件中所需的字符和击键数量,并实现了快速、流畅的编码工作流程。与大多数模板语法不同,您无需中断编码即可在 HTML 中明确表示服务器块。解析器足够聪明,可以从您的代码中推断出这一点。这实现了一个非常紧凑和富有表现力的语法,它干净、快速且打字有趣。

易于学习:它可以让您以最少的概念快速提高工作效率。您使用简单的 Scala 结构和所有现有的 HTML 技能。

不是一种新语言:我们有意识地选择不创造一种新语言。相反,我们希望让 Scala 开发人员能够使用他们现有的 Scala 语言技能,并提供模板标记语法,以实现出色的 HTML 构建工作流程。

可在任何文本编辑器中编辑:它不需要特定的工具,使您能够在任何普通的旧文本编辑器中高效工作。

于 2017-01-18T13:49:17.733 回答