【问题标题】:Are they any way to improve JSP type safety?他们有什么方法可以提高 JSP 类型的安全性吗?
【发布时间】:2011-07-11 09:43:35
【问题描述】:
我在我的项目中添加了 JSP 编译,但编译器仍然不会检查像 ${object.value} 这样的错误宏,其中对象没有获取值的 getter。
我想知道是否有其他方法可以指导 JSP 编译器 (jspc) 执行此操作。我正在考虑一些选择:
1. 在 JSP 中显式声明对象的类型(jsp:useBean ?)。
2. 使用 构造代替 ${ }
但这没有任何帮助。
如果有人能分享他在这方面的经验,我将不胜感激。
【问题讨论】:
标签:
java
validation
jsp
syntax
compilation
【解决方案1】:
使用 <jsp:useBean id="yourId" scope="request" type="com.blah.YourClass"/> 并预编译 JSP。
阅读this article了解更多详情。
【解决方案2】:
不,除非您想从根本上重新设计 JSP 的完成方式。
它生成的 HTML 也不是类型安全的。
您能做的最好的事情是使用 Model-2 MVC,其中您有 servlet 与 JSP 一起工作。让 servlet 担心绑定、验证,并确保正确的对象最终在页面范围内。页面应该只关注显示。
scriptlet 的想法很糟糕。没有人应该将 scriptlet 代码放入 JSP 中。学习和使用 JSTL。