我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?
我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?
当前回答
您提出了一个很好的问题,虽然得到了很好的答案,但我建议您取消JSP。过时的技术终将消亡。使用现代方法,如模板引擎。您将有非常清晰的业务层和演示层的分离,并且模板中肯定没有Java代码,因此您可以直接从web演示编辑软件生成模板,在大多数情况下利用WYSIWYG。
当然,不要使用过滤器和前后处理,否则您可能会遇到支持/调试困难,因为您始终不知道变量从何处获得值。
其他回答
JSTL为条件、循环、集合、get等提供标记。例如:
<c:if test="${someAttribute == 'something'}">
...
</c:if>
JSTL与请求属性一起工作——它们通常由Servlet在请求中设置,Servlet转发到JSP。
为了避免JSP文件中的Java代码,Java现在提供了标记库,如JSTL。
此外,Java还推出了JSF,您可以将所有编程结构以标记的形式写入其中。
在MVC架构模式中,JSP表示视图层。在JSP中嵌入Java代码被认为是一种糟糕的做法。
您可以将JSTL、freeMarker和velocity与JSP一起用作“模板引擎”。
这些标记的数据提供者取决于您正在处理的框架。Struts 2和WebWork作为MVC模式的实现,使用OGNL“非常有趣的技术将Beans财产公开给JSP”。
通过将JSTL标记与EL表达式一起使用,可以避免这种情况。在JSP页面中放置以下内容:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
在JSP中使用JSTL标记库。这将非常有效。