官术网_书友最值得收藏!

5.4 輸出實用的HTML代碼

在網站開發的過程中,經常會在多個頁面使用相同的HTML代碼。例如,在瀏覽信息的模塊中編寫的分頁導航鏈接的代碼;在頁尾輸出的網站版權信息的代碼等。本節將介紹幾個常用的輸出實用的HTML代碼的JavaBean實例。

實例148 輸出提示信息的方法

光盤位置:光盤\MR\05\148

初級

實用指數:

實例說明

運行本實例,在index.jsp頁中輸入用戶名和密碼并將其提交到check.jsp頁,在check.jsp頁中會對用戶名和密碼進行判斷,如果用戶名和密碼正確,則輸出登錄成功信息,否則輸出登錄失敗信息,運行結果如圖5.24所示。

圖5.24 驗證用戶登錄并輸出提示信息

關鍵技術

本實例主要在JavaBean中獲得用戶輸入的用戶名和密碼,然后根據用戶名和密碼信息來生成不同的HTML標簽內容。

設計過程

(1)新建名為StringUtil的JavaBean類,用于判斷用戶名和密碼是否正確并生成提示信息,關鍵代碼如下:

        public class StringUtil {
        private String name;      //用戶名
        private String pwd;       //密碼
        private String cue;       //HTML提示信息
        public String getCue() {
              //如果用戶名或密碼為null或""
              if((name==null||name.equals(""))||(pwd==null||pwd.equals(""))){
                  cue= "請輸入用戶名或密碼!";
              }else{//如果用戶名和密碼不為空
                  if(name.equals("mr")&&pwd.equals("123")){
                      cue= "登錄成功!";
                  }else{
                      cue="登錄失敗! <b>用戶名</b>或<b>密碼</b>不正確!";
                  }
              }
              return cue;
        }
        ……       //省略了其他屬性的get和set方法
        }

(2)新建index.jsp頁,用于輸入表單信息,關鍵代碼如下:

        <form action="login.jsp"method="post">
            <table>
              <tr>
                  <td align="right">請輸入用戶名:</td>
                  <td><input type="text"name="name"/></td>
              </tr>
              <tr>
                  <td align="right">請輸入密碼:</td>
                  <td><input type="password"name="pwd"/></td>
              </tr>
              <tr>
                  <td colspan="2"align="center"><input type="submit"value="登錄"/></td>
              </tr>
            </table>
        </form>

(3)新建login.jsp頁,驗證用戶登錄信息,關鍵代碼如下:

        <%
              String name = request.getParameter("name");
              String pwd = request.getParameter("pwd");
        %>
        <! -- 使用useBean動作標簽導入JavaBean對象 -->
        <jsp:useBean id="strBean"class="com.lh.bean.StringUtil"></jsp:useBean>
        <! -- 對StringUtil類的屬性賦值 -->
        <jsp:setProperty property="name"name="strBean"value="<%=name %>"/>
        <jsp:setProperty property="pwd"name="strBean"value="<%=pwd %>"/>
        <table>
              <tr>
                  <td align="right">提示信息:</td>
                  <td>
                      <! -- 從StringUtil對象中獲得屬性值 -->
                      <jsp:getProperty property="cue"name="strBean"/>
                  </td>
              </tr>
              <tr>
                  <td align="center"colspan="2"><a href="index.jsp">[返回]</a></td>
              </tr>
        </table>

秘笈心法

讀者可以根據本實例的實現方法,實現網上辦公自動化系統以及網上購物系統中的用戶登錄信息提示。

實例149 輸出分頁導航的方法

光盤位置:光盤\MR\05\149

初級

實用指數:

實例說明

在實際開發過程中,很多的功能模塊顯示數據的部分都需要分頁顯示,而且分頁部分的HTML代碼都是相同的,為了提高開發效率以及便于維護,可以將這部分分頁導航的代碼封裝在JavaBean中。本實例將介紹如何將分頁導航的HTML代碼封裝到JavaBean中。

關鍵技術

本實例主要根據用戶單擊超鏈接時傳遞的當前頁的參數來判斷是否顯示“上一頁”或“下一頁”的超鏈接。當單擊“首頁”時該參數值為1,此時應該不存在“上一頁”的超鏈接,只有“下一頁”和“尾頁”的超鏈接;當單擊尾頁時該參數值為總頁數,應該沒有“下一頁”的超鏈接,只有“首頁“和“上一頁”的超鏈接;當單擊“上一頁”時,當前參數值應該減1,單擊“下一頁”超鏈接時,當前值應該加1。所以控制好當前頁的參數值對實現分頁導航是很關鍵的。

設計過程

新建名為Page的JavaBean類,該類用于封裝分頁導航的代碼,關鍵代碼如下:

        public class Page {
        private int pageSize=10;                                  //每頁顯示的記錄數
        private int currentPage=1;                                //當前頁
        private int totalPage=0;                                  //總頁數
        private int totalRows=0;                                  //總記錄數
        private boolean hasBefore=false;                          //是否有上一頁
        private boolean hasNext=false;                            //是否有下一頁
        private String linkHTML="";                               //用于保存分頁導航的HTML代碼
        private String pageURL;                                   //具體的鏈接地址
        public int getTotalPage() {
              totalPage=((totalRows+pageSize)-1)/pageSize;      //根據數據總數和每頁顯示的記錄數算出總頁數
              return totalPage;
        }
        //單擊的是首頁
        public void firstPage(){
              currentPage=1;                                    //當前頁的值為1
              this.setHasBefore(false);                         //沒有上一頁
              this.refresh();                                   //單擊“首頁”時應該設置是否有上一頁和下一頁
        }
        //單擊的是上一頁
        public void beforePage(){
              currentPage--;                                    //當前頁的值減1
              this.refresh();                                   //單擊“上一頁”時應該設置是否有上一頁和下一頁
        }
        //單擊的是下一頁
        public void nextPage(){
              if(currentPage < totalPage){
                 currentPage++;                    //當前頁的值加1
              }
              this.refresh();                       //單擊“下一頁”時應該設置是否有上一頁和下一頁
        }
        //單擊的是尾頁
        public void lastPage(){
              currentPage=totalPage;                //當前頁的值等于總頁數
              this.setHasNext(false);               //沒有下一頁
              this.refresh();                       //單擊“尾頁”時應該設置是否有上一頁和下一頁
        }
        //根據用戶的操作,判斷是否有上一頁和下一頁
        public void refresh(){
             if(totalPage<=1){                     //總頁數小于等于1的情況,沒有上一頁和下一頁
                     this.setHasBefore(false);
                     this.setHasNext(false);
             }
             else if(currentPage==1){               //當前頁為首頁,沒有上一頁,有下一頁
                    this.setHasBefore(false);
                    this.setHasNext(true);
             }
             else if(currentPage==totalPage){       //當前頁為尾頁,沒有下一頁,有上一頁
                   this.setHasBefore(true);
                   this.setHasNext(false);
             }else{                                //除了以上的所有條件,有上一頁和下一頁
                   this.setHasBefore(true);
                   this.setHasNext(true);
             }
        }
        //獲得分頁導航代碼的方法,主要根據是否有上一頁和下一頁來判斷
        public String getLinkHTML(){
             linkHTML+="共"+this.totalRows+"條記錄 &nbsp; &nbsp; &nbsp; &nbsp; ";
             if(this.hasBefore){                   //如果有上一頁,添加上一頁的超鏈接代碼
                   linkHTML+="<a href='"+this.pageURL+"? currPage=1'>首頁</a>";
                   linkHTML+="&nbsp; &nbsp; &nbsp; &nbsp; ";
                   linkHTML+="<a href='"+this.pageURL+"? currPage="+this.currentPage+"&action=before'>上一頁</a>";
                                linkHTML+="&nbsp; &nbsp; &nbsp; &nbsp; ";
             }else{                                //如果沒有上一頁
                                linkHTML+="首頁  &nbsp; &nbsp; &nbsp; &nbsp;上一頁&nbsp; &nbsp; &nbsp; &nbsp; ";
             }
             if(this.hasNext){                     //如果有下一頁,添加下一頁的超鏈接代碼
                                linkHTML+="<a href='"+this.pageURL+"? currPage="+this.currentPage+"&action=next'>下一頁</a>";
                                linkHTML+="&nbsp; &nbsp; &nbsp; &nbsp; ";
                                linkHTML+="<a href='"+this.pageURL+"? currPage="+this.totalPage+"'>尾頁             </a>";
                                linkHTML+="&nbsp; &nbsp; &nbsp; &nbsp; ";
             }else{                                //沒有下一頁
                                linkHTML+="下一頁  &nbsp; &nbsp; &nbsp; &nbsp;尾頁&nbsp; &nbsp; &nbsp; &nbsp; ";
             }
             linkHTML+="當前為"+this.currentPage+"/"+this.totalPage+"頁";
             return linkHTML;
}
}

秘笈心法

在本實例中實現將數據分頁的代碼封裝到JavaBean中,避免了在JSP頁中插入大量的Java腳本代碼而導致JSP頁中的代碼混亂,而且有利于程序的維護管理。

實例150 版權信息的生成方法

光盤位置:光盤\MR\05\150

初級

實用指數:

實例說明

在網站開發過程中,在每個頁面的底部都需要添加網站的版權信息以便于網站的維護管理,可以將這些版權信息封裝到JavaBean中,從而達到可重復利用的效果,實例運行效果如圖5.25所示。

圖5.25 生成版權信息

關鍵技術

本實例的實現很簡單,首先在JavaBean中定義好版權信息的字符串,然后在JSP頁中使用<jsp:userBean>動作導入JavaBean對象,最后通過<jsp:getProperty>動作獲得JavaBean中定義好的版權信息的字符串屬性值。

設計過程

(1)新建名為Copyright的JavaBean類,關鍵代碼如下:

        public class Copyright {
        private String copyrightStr="CopyRight 2006 www.mingrisoft.com " +"吉林省明日科技有限公司<br>" +
                  "服務熱線:0431-8497898184978982 傳真:0431-84972266";
        public String getCopyrightStr() {
              return copyrightStr;
        }
        }

(2)新建index.jsp頁,用于顯示版權信息,關鍵代碼如下:

        <table>
          <tr bgcolor="skyblue">
                  <td align="center">生成的版權信息:</td>
          </tr>
          <tr>
                  <td>
                      <jsp:useBean id="copyright"class="com.lh.bean.Copyright"></jsp:useBean>
                      <jsp:getProperty property="copyrightStr"name="copyright"/>
                  </td>
              </tr>
        </table>

秘笈心法

在開發網站的過程中,經常會在多個頁面的結尾重復地寫入網站版權信息的HTML代碼,在本實例中將版權信息的代碼封裝到JavaBean中,有利于代碼的重用與維護,并提高開發效率。

主站蜘蛛池模板: 邯郸县| 科技| 新疆| 宝应县| 德惠市| 万安县| 五常市| 确山县| 玉环县| 伽师县| 宁化县| 平乐县| 彩票| 榆树市| 工布江达县| 都安| 宝丰县| 城固县| 哈密市| 衡水市| 石台县| 松溪县| 襄汾县| 新源县| 邓州市| 全州县| 伊春市| 开鲁县| 南岸区| 临泉县| 丰镇市| 读书| 南漳县| 洛隆县| 滦平县| 修武县| 滕州市| 比如县| 扎兰屯市| 翁源县| 黄平县|