zoukankan      html  css  js  c++  java
  • 【java】在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">  


    js部分参考 http://blog.csdn.net/cilen/article/details/7438291

  • 相关阅读:
    【核心算法1】双指针问题
    关于博客园主题
    正交工具allpairs使用
    postman设置变量
    WebDriver驱动下载地址
    MySQL语法基础
    异或
    测试——pytest库上手
    and 和 or 的语句运算
    爬虫——Scrapy中选择器的基本使用(转)
  • 原文地址:https://www.cnblogs.com/ae6623/p/4416728.html
Copyright © 2011-2022 走看看