JavaWeb 自定义 “标签文件” 而非 "标签"

[color=red]目标[/color]
1.创建 自定义[color=red]标签文件[/color]: 在[color=red]WEB-INF/tags/[/color] 定义一个后缀名为[color=red].tag[/color] 的文件 然后在jsp页面引用.

[color=green]2.自己写的一些小例子,在附件中【包含:自定义标签,自定义标签文件,打包标签文件,分页标签,钱大写,dataGridView 等】[/color]

[b][color=red]STEP:1[/color][/b] --dataGridViewTagFile.tag
<%@ tag body-content="scriptless" pageEncoding="UTF-8" %>
<!-- 【引用JSTL标签】-->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<!-- 【必须属性】 在标签文件中定义属性dataScource:数据源 -->
<%@ attribute name="dataSource" required="true" type="javax.servlet.jsp.jstl.sql.Result"%>
<!-- 【可选参数】 自定义 要显示的列名 采用“,”分割 ,default:所有列-->
<%@ attribute name="colunms" type="java.lang.String"%>
<!-- 【可选参数】 table表单的id值 -->
<%@ attribute name="id" type="java.lang.String"%>
<!-- 【可选参数】 table表单的class -->
<%@ attribute name="cls" type="java.lang.String"%>
<!-- 【可选参数】 奇数tr的class -->
<%@ attribute name="otrcls" type="java.lang.String"%>
<!-- 【可选参数】偶数tr的class -->
<%@ attribute name="etrcls" type="java.lang.String"%>


<!-- 编写表单 -->
<table border="1" id="${id}" class="${cls}">
<tr bgcolor="#CCCCCC">
<!-- 显示 表头列名 -->
<c:choose>
<c:when test="${colunms ne null && fn:length(colunms) gt 0}">
<c:forEach var="columnName" items="${fn:split(colunms,',')}">
<c:if test="${fn:length(columnName) gt 0}">
<th>${columnName}</th>
</c:if>
</c:forEach>
</c:when>
<c:otherwise>
<c:forEach items="${dataSource.columnNames}" var="columnName">
<th>${columnName}</th>
</c:forEach>
</c:otherwise>
</c:choose>
</tr>
<!-- 显示 表中数据 -->
<c:forEach items="${dataSource.rows}" var="row" varStatus="varIndex">
<!-- 控制奇偶样式 -->
<c:if test="${varIndex.index mod 2 eq 0}">
<tr class="${otrcls}">
</c:if>
<c:if test="${varIndex.index mod 2 ne 0}">
<tr class="${etrcls}">
</c:if>
<!-- 显示数据 -->
<c:choose>
<c:when test="${colunms ne null && fn:length(colunms) gt 0}">
<c:forEach var="columnName" items="${fn:split(colunms,',')}">
<c:if test="${fn:length(columnName) gt 0}">
<td>${row[columnName]}</td>
</c:if>
</c:forEach>
</c:when>
<c:otherwise>
<c:forEach var="columnName" items="${dataSource.columnNames}">
<td>${row[columnName]}</td>
</c:forEach>
</c:otherwise>
</c:choose>
</tr>
</c:forEach>
</table>

[b][color=red]STEP:2[/color][/b] --在index.jsp中引用标签文件并利用
<%@ page language="java" import="java.util.*"
pageEncoding="UTF-8"%>
<!-- jsp:directive.page:只在当前页面 能够访问 jsp:include 的页面不能使用 和 import 都可以使用访问 -->
<jsp:directive.page import="javax.servlet.jsp.jstl.sql.Result" />
<jsp:directive.page import="com.soft.common.*" />
<!--引用自定义标签文件中的表 -->
<%@ taglib tagdir="/WEB-INF/tags" prefix="javaweb"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css">
#customers
{
font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
border-collapse:collapse;
}

#customers td, #customers th
{
font-size:1em;
border:1px solid #98bf21;
padding:3px 7px 2px 7px;
}

#customers th
{
font-size:1.1em;
text-align:left;
padding-top:5px;
padding-bottom:4px;
background-color:#A7C942;
color:#ffffff;
}
#customers tr.alt td
{
color:#000000;
background-color:#EAF2D3;
}
</style>
</head>
<body>
<%
//获取数据源
Result result = BaseDAO.runSelectSql("select id,loginname,sex,password from bi_user where rownum<15");
pageContext.setAttribute("dataSource", result);
%>
定义DataGridView标签 显示部分列名
<javaweb:gridViewTagFile dataSource="${dataSource}" id="customers" etrcls="alt" colunms="id,loginname,SEX,PASSWORD"/>
</body>
</html>

[b][color=red]STEP:3[/color][/b] --效果图

[img]http://dl2.iteye.com/upload/attachment/0071/5823/336a15a7-1c57-399b-9ea5-53bdf9a65f88.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值