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

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

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

STEP:1  --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>

STEP:2  --在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>

STEP:3  --效果图


  • 大小: 111.8 KB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值