<%@taglibur" />

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

系统 2099 0
目标
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   --效果图

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

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


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论