jsp自定义标签

---WEB-INF\mytaglib.tld

<?xml version="1.0" encoding="UTF-8" ?> 

<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> 

<taglib> 
<!-- ============== Tag Library Description Elements ============= --> 

<tlibversion>1.2</tlibversion> 
<jspversion>1.1</jspversion> 
<shortname>bean</shortname> 
<uri>http://struts.apache.org/tags-bean</uri> 
<info> 
This tag library contains useful general-purpose tags supporting 
the development of JSP/servlet applications based on the "Model 
2" (MVC based) design pattern. 

WARNING: ALL OF THE TAGS IN THIS LIBRARY ARE DEPRECATED, AND ARE 
MAINTAINED ONLY FOR BACKWARDS COMPATIBILITY. THEY WILL BE 
REMOVED IN A FUTURE VERSION OF STRUTS. 

</info> 

<!-- ===================== Template Tags ====================== --> 
<!-- Custom tags lib --> 
<tag> 
<name>table2</name> 
<tagclass>lee.Table2Tag</tagclass><!-- 指定业务类 --> 
<bodycontent>empty</bodycontent> 
<attribute> 
<name>table</name> 
<required>true</required> 
<rtexprvalue>true</rtexprvalue> 
</attribute> 
</tag> 
</taglib> 

 

 ---业务类Table2Tag.java

package lee; 

import java.io.IOException; 
import java.io.Writer; 
import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.Iterator; 

import javax.servlet.jsp.JspException; 
import javax.servlet.jsp.tagext.TagSupport; 

public class Table2Tag extends TagSupport { 

private String table; 

public String getTable() { 
return table; 
} 
public void setTable(String table) { 
this.table = table; 
} 

@Override 
public int doStartTag() throws JspException { 

Writer out=pageContext.getOut(); 
Table2 table2=new Table2(table);//引用类 
Iterator it=table2.getIterator(); 
int num=0; 
try { 
out.write("<style>td{border:1px solid #000000; padding: 3px;}</style>"); 
out.write("<table cellspacing='0' cellpadding='0' border='0' align='center' style=\"text-align: center;border: 1px solid #000000;border-collapse: collapse;\">"); 
out.write("<tr bgColor='9999cc'>"); 

while(it.hasNext()){ 
out.write("<td nowrap><b>&nbsp;"); 
out.write(it.next().toString()); 
out.write("&nbsp;</b></td>"); 
num++; 
} 
out.write("</tr>"); 


String sql="select top 50 * from "+table; 
Connection conn = DbHelper.getconn(); 
Statement stmt=conn.createStatement(); 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()){ 
out.write("<tr>"); 
for (int i = 1; i <= num; i++) { 
String clm=rs.getString(i); 
clm=clm==null?"":clm; 
out.write("<td title=\""+clm+"\" nowrap>"); 
out.write(clm.length()>25?clm.substring(0, 25)+"...":clm); 
out.write("</td>"); 
} 
out.write("</tr>"); 
} 
out.write("</table>"); 
DbHelper.closeAll(); 
} catch (IOException e) { 
e.printStackTrace(); 
} catch (ClassNotFoundException e) { 
e.printStackTrace(); 
} catch (SQLException e) { 
e.printStackTrace(); 
} 
return SKIP_BODY; 
} 
} 

 

---引用类Table2.java

package lee; 

import java.io.Serializable; 
import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.Iterator; 
import java.util.List; 

public class Table2 implements Serializable { 


private Iterator iterator; 
private String table; 

public String getTable() { 
return table; 
} 

public void setTable(String table) { 
this.table = table; 
} 

public Iterator getIterator() { 
return iterator; 
} 

public void setIterator(Iterator iterator) { 
this.iterator = iterator; 
} 

public Table2() { 
super(); 
} 

public Table2(String table) { 
super(); 
this.table = table; 

List list=new ArrayList(); 
try { 
String sql="select name from syscolumns Where ID=OBJECT_ID('"+table+"')"; 
Connection conn=DbHelper.getconn(); 
Statement stmt=conn.createStatement(); 
ResultSet rs=stmt.executeQuery(sql); 
while(rs.next()){ 
list.add(rs.getObject("name")); 
} 
} catch (ClassNotFoundException e) { 
e.printStackTrace(); 
} catch (SQLException e) { 
e.printStackTrace(); 
}finally{ 
DbHelper.closeAll(); 
} 
iterator=list.iterator(); 
} 
} 

 

---jsp调用 

<%@ taglib prefix="mytag" uri="/WEB-INF/mytaglib.tld" %> 
<mytag:table2 table="数据库表名"/>

  

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 “STC单片机电压测量”是一个以STC系列单片机为基础的电压检测应用案例,它涵盖了硬件电路设计、软件编程以及数据处理等核心知识点。STC单片机凭借其低功耗、高性价比和丰富的I/O接口,在电子工程领域得到了广泛应用。 STC是Specialized Technology Corporation的缩写,该公司的单片机基于8051内核,具备内部振荡器、高速运算能力、ISP(在系统编程)和IAP(在应用编程)功能,非常适合用于各种嵌入式控制系统。 在源代码方面,“浅雪”风格的代码通常简洁易懂,非常适合初学者学习。其中,“main.c”文件是程序的入口,包含了电压测量的核心逻辑;“STARTUP.A51”是启动代码,负责初始化单片机的硬件环境;“电压测量_uvopt.bak”和“电压测量_uvproj.bak”可能是Keil编译器的配置文件备份,用于设置编译选项和项目配置。 对于3S锂电池电压测量,3S锂电池由三节锂离子电池串联而成,标称电压为11.1V。测量时需要考虑电池的串联特性,通过分压电路将高电压转换为单片机可接受的范围,并实时监控,防止过充或过放,以确保电池的安全和寿命。 在电压测量电路设计中,“电压测量.lnp”文件可能包含电路布局信息,而“.hex”文件是编译后的机器码,用于烧录到单片机中。电路中通常会使用ADC(模拟数字转换器)将模拟电压信号转换为数字信号供单片机处理。 在软件编程方面,“StringData.h”文件可能包含程序中使用的字符串常量和数据结构定义。处理电压数据时,可能涉及浮点数运算,需要了解STC单片机对浮点数的支持情况,以及如何高效地存储和显示电压值。 用户界面方面,“电压测量.uvgui.kidd”可能是用户界面的配置文件,用于显示测量结果。在嵌入式系统中,用
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在 Android 开发中,Fragment 是界面的一个模块化组件,可用于在 Activity 中灵活地添加、删除或替换。将 ListView 集成到 Fragment 中,能够实现数据的动态加载与列表形式展示,对于构建复杂且交互丰富的界面非常有帮助。本文将详细介绍如何在 Fragment 中使用 ListView。 首先,需要在 Fragment 的布局文件中添加 ListView 的 XML 定义。一个基本的 ListView 元素代码如下: 接着,创建适配器来填充 ListView 的数据。通常会使用 BaseAdapter 的子类,如 ArrayAdapter 或自定义适配器。例如,创建一个简单的 MyListAdapter,继承自 ArrayAdapter,并在构造函数中传入数据集: 在 Fragment 的 onCreateView 或 onActivityCreated 方法中,实例化 ListView 和适配器,并将适配器设置到 ListView 上: 为了提升用户体验,可以为 ListView 设置点击事件监听器: 性能优化也是关键。设置 ListView 的 android:cacheColorHint 属性可提升滚动流畅度。在 getView 方法中复用 convertView,可减少视图创建,提升性能。对于复杂需求,如异步加载数据,可使用 LoaderManager 和 CursorLoader,这能更好地管理数据加载,避免内存泄漏,支持数据变更时自动刷新。 总结来说,Fragment 中的 ListView 使用涉及布局设计、适配器创建与定制、数据绑定及事件监听。掌握这些步骤,可构建功能强大的应用。实际开发中,还需优化 ListView 性能,确保应用流畅运
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值