我听过无数次关于在JSP中使用Scriptlet(类似于php的<% %>事物)是多么可怕的事情。
既然任何用途都不需要脚本,并且可以用JSTL、其他标记库和EL (表达式语言)替换,为什么它们仍然存在呢?为什么Oracle还没有从JSP技术中删除这些脚本呢?
发布于 2015-01-07 17:21:09
它们仍然是为了向后兼容性而存在的。
发布于 2018-08-23 17:40:28
这是一个有三年历史的问题,但我想谈谈我个人对这件事的看法。在大型项目(CRM系统)中,我使用与scriptlet一起使用了15年以上的JSP,下面是我的经验:
<c:out ...${product.priceVat}>比<%= product.getPriceVat() %>更好。很多次实际上更糟。它更详细,您可能会丢失类型信息。属性是priceVat BigDecimal还是使用货币格式化的字符串?有时您不知道万一发生了EL (取决于使用的IDE )。getPriceVat方法重命名为getPriceTax,那么它必须反映在所有的代码库中。IntelliJ IDEA在处理脚本方面非常出色。不确定它是否自动将${product.priceVat}重命名为${product.priceTax} (编辑:确实如此,酷)。Netbeans或Eclipse并不能很好地处理JSP分解。https://stackoverflow.com/questions/27809570
复制相似问题