程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jsp腳本、jsp聲明、jsp輸出表達式、javascript、jsp標簽、struts2標簽

jsp腳本、jsp聲明、jsp輸出表達式、javascript、jsp標簽、struts2標簽

編輯:關於JSP

jsp腳本、jsp聲明、jsp輸出表達式、javascript、jsp標簽、struts2標簽


1. 先界定一下題目中概念。   (1)jsp腳本:有的地方也叫java腳本,指用<%     %>括起來的jsp頁面中的java腳本。所有能在java程序中執行的代碼,都可以通過jsp腳本執行。   (2)jsp聲明:用<%!聲明部分%>形式聲明的變量和方法。可以直接用在jsp腳本中。   (3)jsp輸出表達式:用<%=表達式    %>輸出表達式的值,效果與jsp腳本中的out.println相同。表達式後面不能有分號。   (4)javascript:頁面中<script></script>之間的代碼,簡稱js。js插入的位置不同,執行效果也不同。放在<head>中的js調用時才執行,而放在<body>部分的在網頁讀到這部分時就會執行。也可以像添加外部CSS一樣添加外部javaScript腳本文件,其後綴通常為.js。例如:               <head>            <script src="example.js"></script>    </head>   2. jsp腳本、jsp聲明、jsp輸出表達式之間   jsp聲明中聲明的變量和方法對應於Servlet中的成員變量和方法(可以從tomcat的work\Catalina\localhost目錄下找到轉換成的類)。可以在jsp腳本和jsp輸出表達式中直接使用。   jsp腳本中定義的變量也可以在jsp輸出表達式中使用。例如:   <!-- 下面是JSP聲明部分 -->   <%!   public int count;   public String info()   { return "hello";}   %>   <%   Integer i=10;   out.println(count++);   %>   <%   out.println(info());   %>   <%=count++%>   <%=info()%>   <%=i%>   3. jsp標簽、struts2標簽和javascript之間   用var orgIP=document.getElementById("address").value之類在javascript中獲取標簽的值。不同的標簽方法讀取值可能會不同。例如,struts2的autocompleter就需要用下面的方式獲得。    var completer=dojo.widget.byId("name");    var organizationName=completer.comboBoxSelectionValue.value;   而getElementByName用戶獲取一組同名的標簽。   也可以在javascript中設置標簽的值。例如:   document.getElementById("code").value="test";   4. jsp腳本、struts2 action之間   jsp腳本要訪問struts2 action傳過來的變量,要用到ValueStack。例如:    <%       ValueStack vs = (ValueStack) request.getAttribute("struts.valueStack");       User user=(User)vs.findValue("user");         String name=vs.findValue("name");      %>   其中,user和name是action中定義的成員變量,並有對應的getter和setter方法。   5. jsp標簽、struts2標簽、struts2 action之間   struts2 action要訪問jsp標簽、struts2標簽的值,需要有和標簽同名的變量,並有對應的getter和setter方法,這是struts2的傳值機制。當然,struts2 action傳值給result中轉向的jsp頁面中的jsp標簽、struts2標簽時,也使用同名機制。注意,值的傳遞是單次的,也就是說,如果jsp1->action1->jsp2,jsp1只能傳值給action1。    jsp標簽、struts2標簽通過頁面中的form或s:form將值傳遞給action,action通過setter方法或直接給與標簽同名的action成員變量賦值的方法將值傳遞給jsp頁面。   1)對jsp標簽來講,需要使用<s:property>訪問action傳來的值。例如:   <input name="name" type="text" class="form_field_default" size="50" id="name" value="<s:property value="user.name"/>" >   <input name="name" type="text" class="form_field_default" size="50" id="name" value="<s:property value="name"/>" >           前者傳過來的user是對象,有name屬性;後者傳過來的name是簡單類型數據,如string。   2)對struts2標簽來講,需要%{ 變量 }的方式訪問傳來的值,強轉。例如:   <s:textfield name="name" id="name"  size="40"  value="%{user.name}"> </s:textfield>     <s:textfield name="name" id="name" size="40"  value="%{name}"> </s:textfield>      6. jsp輸出表達式、struts2 action之間   jsp輸出表達式也可以直接輸出struts2 action傳來的值。例如:           <%=pageNum * pageSize%>       其中,pageNum和pageSize是struts2 action傳來的值。   7. javascript訪問struts2 action傳來的數據   使用s:property讀取即可。下例中,smsUnit是從action傳過來的變量。       document.getElementById("smsUnit").value="<s:property value="smsUnit"/>"  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved