它们有什么方法可以提高 JSP 类型的安全性吗?
我将 JSP 编译添加到我的项目中,但是编译器仍然不会检查错误的宏,例如 ${object.value},其中对象没有值的 getter。
我想知道是否有其他方法可以引导 JSP 编译器(jspc)来执行此操作。我正在考虑一些选择: 1. 在 JSP 中显式声明对象类型(jsp:useBean ?)。 2. 使用<%=%>构造而不是 ${ }
但这没有任何帮助。
如果有人能分享他在这方面的经验,我将不胜感激。
I added JSP compilation to my project, but still, compiler doesn't check wrong macros like ${object.value}, where object doesn't have getter for value.
I am wonder if there some other ways to guide JSP compiler (jspc) to do this. I was considering some options:
1. Explicitly declare type of object inside JSP (jsp:useBean ?).
2. Using <%= %> construction instead of ${ }
But nothing of this helped.
I would appreciate if anybody would share his experience in this area.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
并预编译 JSP。阅读这篇文章了解更多详情。
Use
<jsp:useBean id="yourId" scope="request" type="com.blah.YourClass"/>
and precompile JSPs.Read this article for more details.
不,除非您想从根本上重新设计 JSP 的完成方式。
它生成的 HTML 也不是类型安全的。
您能做的最好的事情就是使用 Model-2 MVC,其中 servlet 与 JSP 一起工作。让 servlet 关心绑定、验证并确保正确的对象最终出现在页面范围内。页面应该只关心显示。
scriptlet 的想法是一个糟糕的想法。任何人都不应该将 scriptlet 代码放入 JSP 中。学习并使用 JSTL。
No, unless you want to radically redesign how JSPs are done.
The HTML that it generates isn't type safe either.
The best you can do is to use Model-2 MVC, where you have servlets working alongside JSPs. Let the servlet(s) worry about binding, validation, and making sure that the right objects end up in page scope. Pages should be concerned only with display.
The scriptlet idea is a terrible one. No one should be putting scriptlet code in a JSP. Learn and use JSTL.