衆所周知,若是直接在jsp的js或者css語句塊裏面寫${***}取值的話,程序會不識別這玩意,可是,咱們有時候確實須要動態取值,好比,js爲了得到對象的某一個值,不方便用js的getElementById()方法的話,咱們須要這個${**}可能會簡便一百倍,那麼好吧,咱們用jstl標籤的<c:out value ='${}'/>來解決這個問題。css
例如:個人項目文件裏面的jsp頁面所有放在工程的WebRoot下的WEB-INF裏面,網站發佈出去的話,用戶是一個頁面都看不到的,這更加安全,可是也有一個問題,就是路徑會2B,由於所有是靠struts2的配置文件跳到頁面去的,因此路徑必須動態取值。但是個人css裏面,你說該怎麼寫。java
<style type="text/css">安全
bodyjsp
{oop
behavior: url(須要動態取值的項目名/css/hover.htc);background:#fff;網站
}url
</style>對象
可是你要是直接寫字符串
bodyget
{
behavior: url(${pageContext.request.contextPath}/css/hover.htc);background:#fff;
}
程序就不識別了會當作字符串處理,就是一個url路徑,很杯具。其實咱們換個思路就行了,咱們只須要把值取出來便可,就用c:out標籤剛恰好,這個原理一樣適用於js。以下便是正確的代碼,最後的c:out標籤別忘了關 ---> "<c:out value= ' ${}' / >"
jsp頁面頭部別忘記引入
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
最終代碼:
body
{
behavior: url(<c:outvalue='${pageContext.request.contextPath}'/>/css/hover.htc);background:#fff;
}
js也是這樣,想怎麼取值就怎麼取值,還有多種標籤隨你玩,趕忙試試吧。。
var step = "<c:out value='${step}' default='0'/>";
switch(step) {
case "0": .....................
default:
break;
}
var total = <c:out default="0" value="${total}"/>;
var orderPrice=<c:out value='${packageProductOrder.order.sum}'/>;
<c:set scope="page" var="singleProductSize" value="0"/>
<c:forEach items="${packageLine.journeys}" var="journeysItem" varStatus="loopStatus">