• 在jsp的js和css里面使用EL表达式取值|style里面用$取值


    众所周知,如果直接在jsp的js或者css语句块里面写${***}取值的话,程序会不识别这玩意,但是,我们有时候确实需要动态取值,比如,js为了获得对象的某一个值,不方便用js的getElementById()方法的话,我们需要这个${**}可能会简便一百倍,那么好吧,我们用jstl标签的<c:out value ='${}'/>来解决这个问题。

    例如:我的项目文件里面的jsp页面全部放在工程的WebRoot下的WEB-INF里面,网站发布出去的话,用户是一个页面都看不到的,这更加安全,但是也有一个问题,就是路径会2B,因为全部是靠struts2的配置文件跳到页面去的,所以路径必须动态取值。可是我的css里面,你说该怎么写。

    <style type="text/css">

    body

            {

               behavior: url(需要动态取值的项目名/css/hover.htc);background:#fff;

            }

    </style>

    但是你要是直接写

    body

            {

              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">  

  • 相关阅读:
    CS224N Assignment 1扩展阅读——词嵌入
    算法面经总结
    Leetcode刷题笔记(一)
    使用python-Statsmodels进行基于统计学的时间序列分析
    chinaunix book
    行政区划分
    视频网站
    sqlserver还原bak备份文件
    linux给终端设置代理
    ruby中exec,system,%x的区别
  • 原文地址:https://www.cnblogs.com/dead-trap-ramble/p/3623083.html
Copyright © 2020-2023  润新知