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邏輯處理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM