快生活 - 生活常识大全

自定义标签之直接写文件实现


  前面说的是继承TagSupport类实现一个自定义标签,这一篇将介绍一个更加简单的方法来实现自定义标签。
  只用一步就完成了,---------------------------------写tag文件:
  打开你的web项目,然后在WEB-INFO目录下建一个.tag的文件[此文件就是你要自定义什么标签就在此处写]。可以根据需要写多个.tag文件,一下任然与前面一个自定义标签的例子(http://www.360doc.com/showWeb/0/0/251151414.aspx)实现的功能相似,一个自定义的下拉列表(列表中的项来自数据库)=》(其中用到一些jstl标签)
  ---------------------------dropdownlist.tag----------------------------------------------------
  &lt;%@ tag="" pageencoding=""UTF-8"%"&gt;<!--%@-->
  <!--注意:下面的attribute是我们自定义标签的属性(是根据需要定义的),如下所示
  给此标签定义了三个属性,即=>[category/selectedValue/displaySelectAll]
  name:属性的名称
  type:属性类型
  required:该属性是否为必须的
  -->
  &lt;%@ attribute="" name=""category"" type=""java.lang.String"" required=""true""&gt;<!--%@-->
  &lt;%@ attribute="" name=""selectedValue"" type=""java.lang.String"" required=""false""&gt;<!--%@-->
  &lt;%@ attribute="" name=""displaySelectAll"" type=""java.lang.Boolean"" required=""false""&gt;<!--%@-->
  &lt;%@ taglib="" uri=""http://java.sun.com/jsp/jstl/core"" prefix=""c""&gt;<!--%@-->
  <select name=""${name}""></select>
  <c:choose></c:choose>
  <c:when test=""${empty" displayselectall="" or=""></c:when>
  <select><option value="""">--Please Select--</option></select>
  <!--保存在application中的Map-->
  <c:foreach items=""${dataMap[category]}"" var=""op""></c:foreach>
  <c:choose></c:choose>
  <c:when test=""${not" empty="" selectedvalue="=op.dictValue}"" and=""></c:when>
  <select><option value=""${op.dictValue" selected=""selected"">${op.displayName}</option></select>
  <c:otherwise></c:otherwise>
  <select><option value=""${op.dictValue">${op.displayName}</option></select>
  这样,一个自定义标签就写完了(只需要一个.tag的文件),在jsp中使用的时候,就直接把该tag文件导入到里面就行了,如下,一个Test.jsp,
  &lt;%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%&gt;
  <!--引用WEB-INF文件夹下的dropdownlist.tag文件,此处不用定位到.tag文件,只需指定它所在的文件夹即可-->
  &lt;%@ taglib="" prefix=""dict"" tagdir=""/WEB-INF""&gt;<!--%@-->
  <!--!doctype-->
  <meta http-equiv=""Content-Type"" content=""text/html;" charset="UTF-8""/>
  <title>Insert title here</title>
  Hello
  <!--使用自定义标签-->
  <dict:dropdownlist name=""xxx"" category=""STATUS"" displayselectall=""true""></dict:dropdownlist>
  运行即可看到一个下拉框出来,数据来自数据库表,完成!!!
网站目录投稿:梦青