我們在編程JSP時,有時會需要訪問jstl中的數據,或者說是el表達式中的數據。
比如,
<c:forEach varStatus="data1" var="data" items="${alltemphotmeltdata}">
<tr>
<td>
${data.hNo }
</td>
<td>
${data.hDate }
</td>
<td>
${data.hHour }
</td>
<td>
${data.hEnd}
</td>
<td>
${data.hOperat }
</td>
</tr>
</c:forEach >
在上面代碼段中,若想獲取el表達式中的值進行處理時可以這樣做:
<td>
<%
String HGPS_latitude=((HotmeltData)pageContext.getAttribute("data")).getHGPS_latitude().toString().replace(".","").replace("度",".").replace("分","");
String HGPS_longitude=((HotmeltData)pageContext.getAttribute("data")).getHGPS_longitude().toString().replace(".","").replace("度",".").replace("分","");
float latitude=Float.parseFloat(HGPS_latitude.substring(0, 2))+Float.parseFloat(HGPS_latitude.substring(2, HGPS_latitude.length()))/60;
float longitude=Float.parseFloat(HGPS_longitude.substring(0, 3))+Float.parseFloat(HGPS_longitude.substring(3, HGPS_longitude.length()))/60;
%>
<a href="http://api.map.baidu.com/marker?location=<%=latitude%>,<%=longitude%>&title=定位&content=百度&output=html" target="_blank">地圖定位</a>
</td>
上面紅色的地方就是可以獲得el中的數據。
正如上面所說,可以利用
pageContext.getAttribute()
request.getAttribute()
session.getAttribute()
application.getAttribute()
得到值。
又如:
<c:set var="a" value="hello a" scope="request" />
<c:set var="b" value="hello b"/>
<%
out.print(request.getAttribute("a") + "<br/>");
out.print(pageContext.getAttribute("b"));
%>
同理,也可以從jsp中得到變量放入jstl的變量中。