2011年5月30日 星期一

EL裡面是否可以再使用JSP expression?

今天有個JSP如下:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>

<body>
<%
String a = "Apple";
%>
<c:out value="${'Apple'}"/>
<br/>
<c:out value="<%=a%>" />
<br/>
</body>
</html>


它的結果會是:
Apple
Apple

因此知道要在JSTL中表達literal
可以用
1.EL表示: ${'Apple'}
2.JSP expression元素: <%=a%>

那可不可以用EL+JSP expression咧?
像是這樣:
<c:out value="${<%=a%>}"/>
答案是:.
.
..
...
不行, 你會得到這樣的一個例外:
org.apache.jasper.JasperException: /A.jsp(13,0) "${<%=a%>}" contains invalid expression(s): javax.el.ELException: Error Parsing: ${<%=a%>}--
結論:
1.JSTL裡面的literal可以用JSP expression或EL來表示
2.EL中不要再使用JSP expression, 否則會出現錯誤.

沒有留言:

張貼留言