resultstag.java

来自「weblogic应用全实例」· Java 代码 · 共 62 行

JAVA
62
字号
//声明本类所在的包
package examples.jsp.tagext.sql;

//声明本类引入的其它包
import java.io.*;
import java.sql.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

/**
 * 这个类定义一个定制的JSP标签,显示当前会话的内容
 */

public class ResultsTag extends BodyTagSupport {
  
  String rName;
  ResultSet results;
  
  public void setFrom_query(String r) { rName = r; }
  public String getFrom_query() { return rName; }
  //实现doStartTag方法
  public int doStartTag() throws javax.servlet.jsp.JspException {
    results = (ResultSet)pageContext.getAttribute(rName);
    
    if (results != null) {
      try {
        if (results.next())
        {
          // 指令JSP引擎评价标签体
          return EVAL_BODY_TAG;
        } 
        else 
        {
          // 结果集ResultSet为空,指令JSP引擎跳过标签体
          return BodyTag.SKIP_BODY;
        }
      } catch(Exception e) {
        throw new JspException("Failed to use ResultSet. Exception thrown"+e);
      }
    }
    
    return SKIP_BODY;
  }
  //实现doAfterBody方法
  public int doAfterBody() throws javax.servlet.jsp.JspException {
    try {
      if (results.next()) {
        return EVAL_BODY_TAG;
      } else {
        // 注意体内容是逐渐增多的。
        getPreviousOut().print(getBodyContent().getString());
        //getBodyContent().writeOut(getPreviousOut());
        return SKIP_BODY;
      } 
    } catch (Exception ioe) {
      throw new JspTagException(ioe.toString());
      
    }
  }
  
}  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?