这个问题在这里已有答案:
- 如何避免JSP文件中的Java代码? 29个答案
6283
2017-07-12 23:17
起源
JSP可以视为已弃用。如果您可以选择,请选择不需要编译的轻量级解决方案,并将逻辑和布局更好地分离。 - Matt
答案:
当然,这是我个人的意见。我说scriptlet是:
- 1998年需要消失的老式技术;对微软ASP的失败回应。
- 丑陋
- 难以阅读
- 难以维持
- 不鼓励重用和封装
- 鼓励在页面中加入复杂的逻辑
用什么代替?
- 世界已朝着HTML5,CSS3,JavaScript,jQuery,Bootstrap和与REST Web服务交谈的Web技术的方向发展。这是一个很好的方向。
- 如果必须坚持使用JSP,请从JSP标准模板库开始。保持HTML页面看起来像HTML - 它将使UI开发人员更容易维护它们。
- 尝试更现代的模板解决方案,如Thymeleaf,从服务器端生成HTML。
7
2017-07-12 23:22
我同意你说的很多,但这是一个可怕的答案。 “HTML5”不是“我如何在服务器上创建动态生成的网页?”的答案。答案就像“JSTL或Thymeleaf”。也许下次会带领。此外,问题的一部分是“为什么不使用scriptlets”,你没有解决。 - Christopher Schultz
可怕?这与“我同意你所说的相当多”并不一致。有两个部分:(1)scriptlet有什么问题,(2)我还使用了什么?你没有看过第二个清单中的第3项吗? - duffymo
这是我对此的看法。
- 尽管使用Java代码非常简单,但Scriplets很难阅读,并且它使代码看起来有些混乱。
- 和duffymo一样,大多数人都会推荐,在JSP方面,使用JSTL是Scriplets的一个更好的替代品。
曾经有一段时间我会坚持使用Scriplets在JSP中使用一些Java代码,但学习JSTL非常方便。它使代码更容易阅读,因为它与HTML标记很好地融合在一起。
5
2017-07-13 01:35
我希望我现在可以选择两个答案 - vikarjramun
没关系,duffymo实际上为JSP提供了一些不错的选择。如果你想在JSP中保持HTML代码的清洁,那就修改一下CSS,jQuery和JS。 - Noir Antares
拥有'227k'声望的用户获得+15分并不重要。对于信誉为“1”的用户,+ 15分意味着很多,并鼓励他们。至少,如果有帮助的话,请给出这个答案。 - rupinderjeet
它不是一个干净的设计,将代码与视图逻辑混合在一起。 这就是JSP不是理想的解决方案。
您应该使用Velocity / Freemarker之类的模板,而不允许混合使用Java代码。
这样做的另一个好处是非Java UI专家设计人员可以在不必学习Java的情况下为UI做出贡献。
3
2017-07-12 23:47
一些事情:我的JSP代码很容易让非Java设计者理解 - 它基本上是带有值的HTML;我只需要Java代码来连接数据库和读/写对象。如果不是通过像JSP这样的动态服务器端语言,我还能如何实现这一目标? - vikarjramun
@vikarjramun只是使用jsf - Mr D
@MrD实际上,这正是我想要的。但是,我从duffymo和amitmah的答案中得到了一些很好的建议。我认为duffymo的答案帮助最好,我会接受他的。 - vikarjramun
@vikarjramun他的回答与我没有冲突,jsf可以运行在html5,js,bootstrap等之上。 - Mr D
当你提到JSP中需要数据库连接代码时,看起来你并不理解分离显示逻辑和代码。数据库可以改变,最终你将改变JSP。 - amitmah