我想知道使用scriplet的全部内容。为什么在编写JSP时不建议使用它。每次我询问使用scriptlet进行编码时,他们都指示我不要使用它而是使用JSTL。
答案 0 :(得分:1)
网上有几篇关于scrptlets和JSTL的文章(我猜你先搜索过一些),其中大部分会告诉你同样的文章
另一方面
答案 1 :(得分:0)
您似乎只专注于演示和流量控制 使用if,for和switch语句的一部分scriptlet out.print()的东西。
您似乎将Scriptlet 1:1与JSTL进行比较。这是错的。我曾是 不是只讨论流量控制部分(事实上确实如此) 取而代之的是JSTL),但是关于在JSP文件中编写原始Java代码 一般
即。收集请求参数,验证和转换值, 与数据库和其他Java类/方法等交互。所有 您通常(间接)在Servlet或过滤器中执行的操作。
您不应该在JSP中使用scriptlet代码。我推荐100%JSTL和零写代码。
JSP应该是纯粹的表示。这是隐藏的好处 仅使用JSTL编写JSP,因为它们可以获得所有动态 其他数据。让服务层具有业务逻辑和 确定JSP需要什么数据。
这也回答了您的单元测试问题。你不应该这样做 单元测试JSP;那些将是类似Selenium的UI测试。如果逻辑 在服务层,很明显你如何测试它。
不应继承JSP。你当然可以撰写它们 一起使用像SiteMesh这样的东西,但继承没有任何作用 在你的JSP中。一旦他们从Servlet继承,链就应该是 结束。
此外,这是一个错误的选择。两者都不应该要求重用, 继承或单元测试。但这并不意味着没有 明确的赢家:这是JSTL。没有人应该在JSP中使用scriptlet, 除了非常罕见的单线。 Scriptlet正在乞求麻烦。
这些天我更喜欢Velocity作为我的网页UI模板解决方案 Java,远不止JSP。只是我的意见。