EL 快速开始

时间:2022-05-24 02:08:21

技术选型上,推荐使用EL表达式,少用不用taglib。

大趋势 前后端分离 mvc+mvvm ,使用【thymeleaf】和前端更好结合,也是springboot官方推荐的做法。

【viewTicket】

<%@ page import="net.mypla.model.Ticket" %>
<%--<%@ page session="false" %>--%>
<%
//String ticketId = (String) request.getAttribute("ticketId");
Ticket ticket = (Ticket) request.getAttribute("ticket");
%>
<html>
<head>
<title>消费者支持系统</title>
</head>
<body>
<a href="<c:url value="/login?logout"/>">注销</a>
<h2>Ticket #${ticketId}: ${ticket.subject}</h2>
<i>Customer Name - ${ticket.customerName}</i><br /><br />
${ticket.body}<br /><br />
<%
if(ticket.getNumberOfAttachments()>0){
%>Attachments:<%
int i = 0;
for(Attachment a:ticket.getAttachments()){
if(i++>0)
out.print(",");
%><a href="<c:url value="/tickets">
<c:param name="action" value="download"/>
<c:param name="ticketId" value="${ticketId}"/>
<c:param name="attachment" value="${a.name}"/>
</c:url>">${a.name}</a><%
}
}
%><br/>
<a href="<c:url value="/tickets" />">Return to list tickets</a>
</body>
</html>

【使用了EL表达式语言求值】

${ticketId} 相当于 <%=ticketId%>+脚本隐式对象request.getAttribute("ticketId");   //因为本身是字符串。
${ticket.customerName} 相当于 <%=ticket.getCustomerName()%>

【还记得我们の约定:让IDE友好的提示】

<%--@elvariable id="ticketId" type="java.lang.String"--%>
<%--@elvariable id="ticket" type="net.mypla.model.Ticket"--%>