Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->编程语言 ->JAVA/JSP教程 ->正文

html与jsp开发分离技术

来源:Linuxdby.com 作者:Webmaster 时间:2007-06-03 点击: [收藏] [投稿]

    在传统的JSP程序中,我们将HTML代码与Java代码混合在一起编写,这样虽然方便,但同时也导致页面难以维护,HTML开发人员和JSP开发人员负担加重,我们可以将这种传统的技术成为页面拉数据技术

    怎样才能做到将HTML开发和JSP开发分离呢?答案就是使用Tag技术,通过使用Tag技术,我们就可以在页面程序中不出现JSP代码,在需要数据的地方,大家先约定好标签,然后由Tag的后台处理程序去替换这些标签,显示数据。我称这种技术叫做向页面推数据,页面只要定义好格式就行了。这样,我们可以让HTML开发人员专注于页面的外观,而Java程序员则不用理会页面显示,专注于后台程序,大大提高了程序的可维护性和方便性。便于各程序员之间的协作开发。

    首先你要懂一些Tag技术,然后才能阅读本文。下面是样例程序:

一、首先是替换字符串的replace函数

  // 替换字符串函数
  // String strSource - 源字符串
  // String strFrom   - 要替换的子串
  // String strTo     - 替换为的字符串
  public static String replace(String strSource, String strFrom, String strTo)
  {
      // 如果要替换的子串为空,则直接返回源串
      if(strFrom == null || strFrom.equals(""))
          return strSource;
      String strDest = "";
      // 要替换的子串长度
      int intFromLen = strFrom.length();
      int intPos;
      // 循环替换字符串
      while((intPos = strSource.indexOf(strFrom)) != -1)
      {
          // 获取匹配字符串的左边子串
          strDest = strDest + strSource.substring(0,intPos);
          // 加上替换后的子串
          strDest = strDest + strTo;
          // 修改源串为匹配子串后的子串
          strSource = strSource.substring(intPos + intFromLen);
      }
      // 加上没有匹配的子串
      strDest = strDest + strSource;
      // 返回
      return strDest;
  }

二、Tld文(MyBookTag.tld) 定义你的标签


<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
        "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name></short-name>
  <tag>
    <name>ListBook</name>
    <tag-class>com.book.taglib.ListBookTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
</taglib>

三、Tag的后台处理文件,负责解释标签(ListBookTag.java)

package com.book.taglib;

import java.util.*;
import java.lang.*;

import com.book.model.bookmodel;
import com.book.utils.StringHelper;

import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.JspWriter;
import javax.servlet.ServletRequest;

public class ListBookTag extends BodyTagSupport {

   // 标志开始位置执行
   public int doStartTag(){
     return EVAL_BODY_BUFFERED;
   }
   // 标志结束位置执行
   public int doEndTag()throws JspTagException {
     int max = 0;
     String ListBody = null;
     int number = 1;
    // 获取页码信息,也就是request对象中的内容
     String serialNo = pageContext.getRequest().getParameter("serialNo");
    // 转换为整数
     try{
       number = Integer.parseInt(serialNo);

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Servlet、Jsp中的多国语言显示   下一篇:通过Jsp发送动态图像

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号