我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?
我知道类似以下三行
<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
是一种老式的编码方式,在JSP版本2中存在一种避免JSP文件中出现Java代码的方法。什么是可选的JSP2行,这种技术叫什么?
当前回答
如何避免JSP文件中的Java代码?
除了表达式语言(EL)之外,还可以使用JSTL之类的标签库标记。但是EL不能很好地使用JSP。因此,完全删除JSP并使用Facelets可能更好。
Facelets是为JSF(JavaServerFaces)设计的第一种非JSP页面声明语言,与JSP相比,它为JSF开发人员提供了更简单、更强大的编程模型。它解决了JSP中web应用程序开发中出现的不同问题。
来源
其他回答
如果您只是想避免JSP中Java编码的缺点,那么即使使用scriples也可以这样做。只需遵循一些规则,在JSP中使用最少的Java,而在JSP页面中几乎没有计算和逻辑。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<% // Instantiate a JSP controller
MyController clr = new MyController(request, response);
// Process action, if any
clr.process(request);
// Process page forwarding, if necessary
// Do all variable assignment here
String showMe = clr.getShowMe();%>
<html>
<head>
</head>
<body>
<form name="frm1">
<p><%= showMe %>
<p><% for(String str : clr.listOfStrings()) { %>
<p><%= str %><% } %>
// And so on
</form>
</body>
</html>
如果我们在JavaWeb应用程序中使用以下内容,Java代码可以从JSP文件的前台删除。
为web应用程序使用MVC架构使用JSP标记
a.标准标签
b.自定义标签
表达式语言
我的朋友,这些都不再使用了。我的建议是将视图(CSS、HTML、JavaScript等)与服务器分离。
在我的例子中,我使用Angular处理视图,并且使用REST服务从服务器获取所需的任何数据。
相信我,这将改变你的设计方式。
在JSP中使用scriptlets不是一种好的做法。
相反,您可以使用:
JSTL标签EL表达式自定义标记-您可以定义自己要使用的标记。
请参考:
http://docs.oracle.com/javaee/1.4/tutorial/doc/JSTL3.html电子邮箱
JSTL为条件、循环、集合、get等提供标记。例如:
<c:if test="${someAttribute == 'something'}">
...
</c:if>
JSTL与请求属性一起工作——它们通常由Servlet在请求中设置,Servlet转发到JSP。