熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

JavaBean實現JSP頁面和代碼分離

2013-11-23 19:05:01  來源: Java核心技術 

  

  在JSP編程中Struts一般只是用來處理form和業務邏輯很多時候我們還是需要使用 <% java code %> 這樣的語句來操作一些輸出這樣的方式和ASP很類似非常不便於程序代碼和頁面設計維護網上有很多種分離的解決方案本文只是我個人推薦的一種簡單方式

  首先看我們要進行分離操作的原文件

  Testjsp

  > 
    
   <html> 
    
     <head> 
    
       <title>My JSP Testjsp starting pagetitle> 
    
     head> 
    
      
    
     <body> 
    
       This is my JSP page. <br> 
    
       Date : <%= new java.util.Date().toString() %> <br> 
    
       File : <input value="<%= request.getServletPath() %>" />   
    
     body> 
    
   html> 

  這個JSP文件中包含了兩段JSP代碼,分別用來輸出當前時間和文件路徑。TW.wingwIt.cOM雖然簡單,但很有代表性,進行文本輸出和HTML控件賦值是我們在JSP文件中寫Java代碼最主要的原因。接下來,我們開始我們的分離過程。

  1. 編寫JavaBean

  使用 JavaBean Property 來獲取所需的日期和文件名。

  DemoBean.java

  package com.mycompany;  
    
   import java.util.Date;  
    
   import javax.servlet.jsp.*;  
    
   import javax.servlet.http.*;  
    
   public class DemoBean {  
    
     private PageContext pageContext;  
    
       
    
     public void setPageContext(PageContext pageContext) {  
    
       this.pageContext = pageContext;  
    
     }  
    
       
    
     public String getDate() {  
    
       return new Date().toString();  
    
     }  
    
       
    
     public String getFilename() {  
    
       HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();  
    
       return request.getServletPath();  
    
     }  
    
   } 

  在這個名叫 DemoBean 中,我們提供了setPageContext方法用來獲取JSP頁面的環境對象。有了該對象,我們就可以象在JSP頁面中那樣使用 request、response、session 進行相關的操作了。

  2. 創建包含文件

  TestInc.jsp

  

  <% demo.setPageContext(pageContext); %>

  這是個簡單至極的JSP文件,第一行代碼是聲明使用JavaBean的語句,第二行代碼調用了DemoBean.setPageContext()方法將當前JSP頁面的pageContext對象傳遞到demo對象中,這下你知道DemoBean是如何獲得環境對象的吧。至於為什麼需要使用這個jsp文件來達到使用JavaBean實現JSP頁面的目的?請繼續往下看。

  3. 修改原JSP文件

  Test.jsp

  <%@ include file="TestInc.jsp" %> 
    
   > 
    
   <html> 
    
     <head> 
    
       <title>My JSP 'Test.jsp' starting pagetitle> 
    
     head> 
    
     <body> 
    
       This is my JSP page. <br> 
    
       Date : <jsp:getProperty name="demo" property="date" /> <br> 
    
       File : <input value="<jsp:getProperty name="demo" property="filename" />"/>   
    
     body> 
    
   html> 

  請注意修改後的JSP文件第一行,我們使用了一個include語句,將我們剛才創建的 TestInc.jsp 文件包含了進來。下面有關日期和文件名的語句也是使用JavaBean的標准語法。運行一下,看看是不是和原來的Test.jsp一樣。

  include 指令所包含的 jsp 文件,會在第一次運行時和原文件合並,被編譯成一個完整的 servlet。

  jsp:getProperty 的 property 值從 "getFilename" 變成了 "filename",一定要注意,很多人正在為這個郁悶著呢。

  好了,我們總結一下這種使用JavaBean實現JSP頁面方式的好處:

  1. 修改後的JSP文件不再包含java代碼,JavaBean Class更利於程序代碼的維護。

  2. 程序開發人員使用簡單的空白頁就可以進行開發,待頁面設計人員提交目標頁後,只需簡單的編輯即可完成替換。

  3. html代碼變得非常干淨,頁面設計人員修改頁面文件時,不用擔心誤刪除程序代碼了。

  4. 使用INC文件,可以包含多個JavaBean的聲明,利於將不同的任務分解成多個JavaBean,多個程序員可以獨立、不受干擾地工作。

  5. 開發人員甚至可以直接在該包含文件內部直接創建 Java 方法,就像你原來所熟悉的那樣。


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26238.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.