selecttag.java

来自「自定义jsp标签」· Java 代码 · 共 91 行

JAVA
91
字号
package com.ctele.dtboss.pub.tag;

//导入标签类的驱动
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.sql.*;
import com.ctele.dtboss.pub.DBUtil;

//实现TagSupport或BodyTagSupport接口

public class SelectTag
extends TagSupport {

Connection connect = null;
Statement state = null;
ResultSet result = null;

protected String name;
protected String tableName;

public String getName()
{
  return name;
}

public void setName(String name)
{
  this.name = name;
}

public String getTableName()
{
  return tableName;
}

public void setTableName(String tableName)
{
  this.tableName = tableName;
}

//抽象类Tag的方法,标签处理程序的初始化
public int doStartTag() throws JspTagException {
//指导JSP引擎处理标签的体内容
return EVAL_BODY_INCLUDE;
}

//执行标签任务
public int doEndTag() throws JspTagException {
try {
	
  JspWriter out = pageContext.getOut();
  
  connect = DBUtil.getTestConn();
  state = connect.createStatement();
  
  String strTable = "select param_column,value_column from bndict_table where table_name='"+tableName+"'";
  System.out.println("取显示表的字段: " + strTable);
  ResultSet result1 = state.executeQuery(strTable);
  result1.next();
  String paramColumn = result1.getString(1);
  String valueColumn = result1.getString(2);
  
  
  
  String strQuery = "select "+paramColumn+","+valueColumn+" from "+tableName;
  System.out.println("取静态数据: " + strQuery);
  state = connect.createStatement();
  ResultSet result = state.executeQuery(strQuery);
  
  String sId = null;
  String sAddress = null;
  StringBuffer tag = new StringBuffer();
  
  tag.append("<select name=\""+name+"\">\n");
  
  while (result.next()) {
    sId = result.getString(1);
    sAddress = result.getString(2);
    tag.append("<option value=\""+sId+"\">"+sAddress+"</option>\n");
  }
  tag.append("<select/>");
  
    pageContext.getOut().print(tag.toString());
}
catch (Exception ioe) {
  System.out.println(" Error in getting results" + ioe.toString());
}
//指出对JSP页面其余部分求值
return EVAL_PAGE;
}
}

⌨️ 快捷键说明

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