天天看點

【java】在jsp的js和css裡面使用EL表達式取值|style裡面用$取值

<b>衆所周知,如果直接在jsp的js或者css語句塊裡面寫${***}取值的話,程式會不識别這玩意,但是,我們有時候确實需要動态取值,比如,js為了獲得對象的某一個值,不友善用js的getElementById()方法的話,我們需要這個${**}可能會簡便一百倍,那麼好吧,我們用jstl标簽的&lt;c:out value ='${}'/&gt;來解決這個問題。</b>

<b>例如:我的項目檔案裡面的jsp頁面全部放在工程的WebRoot下的WEB-INF裡面,網站釋出出去的話,使用者是一個頁面都看不到的,這更加安全,但是也有一個問題,就是路徑會2B,因為全部是靠struts2的配置檔案跳到頁面去的,是以路徑必須動态取值。可是我的css裡面,你說該怎麼寫。</b>

<b>&lt;style type="text/css"&gt;</b>

<b>body</b>

<b>        {</b>

<b>           behavior: url(</b><b>需要動态取值的項目名</b><b>/css/hover.htc);background:#fff;</b>

<b>        }</b>

<b>&lt;/style&gt;</b>

<b>但是你要是直接寫</b>

<b>          behavior: url(</b><b>${</b><b>pageContext.request.contextPath</b><b>}</b><b>/css/hover.htc);background:#fff;</b>

<b>       }</b><b></b>

<b>程式就不識别了會當做字元串處理,就是一個</b><b>url</b><b>路徑,很杯具</b><b>。其實我們換個思路就好了,我們隻需要把值取出來即可,就用</b><b>c:out</b><b>标簽剛剛好,這個原理同樣适用于</b><b>js</b><b>。如下即是正确的代碼,最後的</b><b>c</b><b>:</b><b>out</b><b>标簽别忘了關  ---&gt;  </b><b>"&lt;c:out value= ' ${}' / &gt;"</b>

<b>jsp頁面頭部别忘記引入</b>

<b>&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&gt;</b>

<b></b>

<b> 最終代碼:</b>

<b>           behavior: url(</b><b>&lt;c:outvalue='${pageContext.request.contextPath}'/&gt;</b><b>/css/hover.htc);background:#fff;</b>

<b>js</b><b>也是這樣,想怎麼取值就怎麼取值,還有多種标簽随你玩,趕緊試試吧。。</b>

<b> </b><b>var step = </b><b>"&lt;c:out value='${step}' default='0'/&gt;"</b><b>;   </b>

<b>  </b><b> </b><b>switch</b><b>(step) {  </b><b> </b><b>  </b>

<b>   case</b><b> </b><b>"0"</b><b>:  </b><b> </b><b>   .....................  </b><b> </b><b>  </b>

<b>   </b><b>default</b><b>:  </b><b> </b><b>    </b>

<b>   </b><b>break</b><b>;   </b>

<b>}  </b><b> </b>

<b>   var </b><b>total</b><b> = </b><b>&lt;c:out</b><b> </b><b>default</b><b>=</b><b>"0"</b><b> </b><b>value</b><b>=</b><b>"${total}"/&gt;</b><b>;   </b>

<b>  </b><b>var </b><b>orderPrice</b><b>=</b><b>&lt;c:out</b><b> </b><b>value</b><b>=</b><b>'${packageProductOrder.order.sum}'/&gt;</b><b>;  </b>

<b>   &lt;c:set</b><b> </b><b>scope</b><b>=</b><b>"page"</b><b> </b><b>var</b><b>=</b><b>"singleProductSize"</b><b> </b><b>value</b><b>=</b><b>"0"/&gt;</b><b>  </b><b></b>

<b>   &lt;c:forEach</b><b> </b><b>items</b><b>=</b><b>"${packageLine.journeys}"</b><b> </b><b>var</b><b>=</b><b>"journeysItem"</b><b> </b><b>varStatus</b><b>=</b><b>"loopStatus"&gt;</b><b>  </b>

<b>js</b><b>部分參考</b><b> http://blog.csdn.net/cilen/article/details/7438291</b>