标签:
JSP中的代码越来越多,冗余的内容自然也就多了,往往一个很小的改动你需要去改动N个页面,工作量大不说,还容易出错。今天带你彻底解决这个问题!
tips:
本文介绍的是jsp:tag中的一般使用方式,另外一种叫做:jsp:tld,两者同时使用并不冲突。我们习惯T们称作页面控件,通常一个项目中这两者都会使用到。
我的习惯是先在WEB-INF下创建一个tag文件夹,再按照功能的不同,或者模块的不同划分再划分一个文件夹。比如:WEB-INF/tags/layout
再创建我的Tag。比如:***.tag
<%-- Created by IntelliJ IDEA. User: ta0477 Date: 16/7/20 Time: 16:47 To change this template use File | Settings | File Templates. --%> <%@ tag language="java" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!--对象--> <%@ attribute name="nowSitet" type="com.wttech.tciss.jsxy.core.vo.statistics.ShutdownSite" required="false" description="当前时间节点temp"%> <%@ attribute name="shutdownSitest" type="java.util.List" required="false" description="年度列表数据temp"%> <!--属性名称--> <%@ attribute name="selectName" type="java.lang.String" required="false" description="选择框Name"%> <%@ attribute name="selectId" type="java.lang.String" required="false" description="选择框Id"%> <%@ attribute name="selectDes" type="java.lang.String" required="false" description="选择框文字描述"%> <!--业务逻辑: 做法:将一个对象和集合复制给另外一到另外一对属性中去 目的:防止控制设置的参数名称与tag使用的参数名不统一的问题 --> <c:if test="${null!=nowSitet&&null!=shutdownSitest}"> <c:set var="nowSite" scope="request" target="nowSite" value="${nowSitet}"/> <c:set var="shutdownSites" scope="request" target="shutdownSites" value="${shutdownSitest}"/> </c:if> <th class="r" width="116">${not empty selectDes?selectDes:"年度信息"}:</th> <td width="220"> <select id="${not empty selectId?selectId:‘shutdownSiteId‘}" name="${not empty selectName?selectName:‘shutdownSiteName‘}" class="form-control w210px"> <c:forEach var="site" items="${shutdownSites}"> <c:choose> <c:when test="${v.id==nowSite.id}"> <option value="${site.id}" selected>${site.year}</option> </c:when> <c:otherwise> <option value="${site.id}">${site.year}</option> </c:otherwise> </c:choose> </c:forEach> </select> </td>
我这里的需求是这样:很多页面都需要加年度选项来查询数据,这些数据都来自于我的后台数据库中(这个需求用tld更合适一些,我就是想举个栗子不许喷我),前台展示的方式都是使用select来展示。
我先在common.jsp中加入我的jsp:tag
<!--显示控件tag--> <%@ taglib prefix="layout" tagdir="/WEB-INF/tags/layout" %>
在页面中使用我的jsp:tag
<layout:shudownsitelist selectId="shutdownSIteID" selectName="shutdownSIteID"/>
最后的效果:一个加载好数据的下拉选项框。
希望这篇文章对你有所帮助,帮我点个赞吧。!!!!
欢迎你来和我交流学习。
原创禁止转载!!!!!!
标签:
原文地址:http://www.cnblogs.com/flyingMonkey/p/5689603.html