在jsp的js和css裏面使用EL表達式取值|style裏面用$取值

衆所周知,若是直接在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。以下便是正確的代碼,最後的cout標籤別忘了關  --->  "<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">

相關文章
相關標籤/搜索