zoukankan      html  css  js  c++  java
  • java,js,jstl,EL的简单交互

        EL全名Expression Language.EL提供了在JSP脚本编制元素范围外使用运行时表达式的功能。

        脚本编制元素是指页面中能够用于在JSP文件中嵌入java代码的元素。

        JSP标准标记库(jsp staandard tag library,jstl)是一个实现web应用程序常用功能的定制标记库集。有c标签。fmt标签,sql标签,xml标签,fn标签等.

         EL表达式与jstl有何不同?

        El表达式的出现主要是为了使jsp的使用更简单,减少java的代码,一般与jstl配合使用,但有时会出现一些疑问。

        简单的说,EL是用来显示数据的,功能跟<%=表达式%> 一样,EL是不需要引入什么东西的,而jstl通常用一些逻辑控制,核心标签库常用的是if和forEach。

        例如,有一个对象,User,User有个属性userName,

          ${sessionScope.user.userName},相当于

          <%

             User user=(User) session.getAttribute("user");

              out.print(usre.userName);

          %>

    上面是嵌套在jsp中的java代码。

          有时候,我们需要跟js交互数据,

    可以在js中这样写:

    方法一:

        var userName= "${user.userName}";//注意要有双引号

        同时,我们要明白 jstl的标签会转化为服务器端的代码执行,而js代码则在客户端执行。

        如果js代码在jsp文件中,这样写是可以的 ,但如果是放在引入的js文件,这样是不起作用的,因为EL表达式是在服务端执行的,服务端执行完成后再传给客户端的,js是在客户端执行的,el在js前就被执行了。

    方法二:

    有时候我们把需要引用的全局变量写在一个jsp中,使用java代码 

    把引入的外部js改为jsp文件,然后在jsp页面中引入<script src="myjs.jsp"></script>

    然后在jsp页面中引入myjs.jsp,

    <script src="myjs.jsp" type="text/javascript"></script>

    <%
    String url = "http://" + request.getServerName(); //服务器地址

    }

    %>
    <script type="text/javascript">

    var url='<%=url%>';

    </script>

    或者
    <c:set var="webRoot" value="<%=url%>" />

    方法三:隐藏域

           这个简单,<input type="hidden" id="text1" value="${user.userName}"> 

    然后在js中直接获取id为text1的值就可以了。

    方法四,ajax访问后台方法,request.getSession.getAttribute("user");

      返回业务给js逻辑处理。

  • 相关阅读:
    SOA概念误解实施要点
    Visual Studio 2008 和 .NET Framework 3.5 Service Pack 1 Beta 发布
    【翻译】使用LINQ来简化编程的7个技巧
    我对SOA的认识以及心得
    《SQL Server 2005范例代码查询辞典》出版
    Security Tutorials系列文章以及AJAX系列文章
    代朋友发招聘信息,C++程序员
    二叉树相关算法
    最近项目的一些心得(纯贴代码)
    大型互联网网站架构心得之一:分
  • 原文地址:https://www.cnblogs.com/yansum/p/5742964.html
Copyright © 2011-2022 走看看