20190328学习笔记 - JSP 中的 tag 文件

  • 对于tag 文件
    • 1. 引入 tag 文件
    • 2. 在/WEB-INF/tags/sys 下,新增一个gridselect.tag文件
    • 3. 在jsp中使用该tag

在jsp文件中,可以引用 tag 和tld 文件,本文主要针对 tag

对于tag 文件

  1. 将此类文件放在 WEB-INF 下,比如 /WEB-INF/tags,tags 是目录,其下可以有多个.tag文件,如
    tree.tag,menu.tag
  2. 在jsp 中使用 <%@ taglib prefix=“sys” tagdir="/WEB-INF/tags/sys" %> 来引入
  3. 在jsp 页面上,采用sys:xxx 来使用该 tag 文件,如 sys:tree、sys:menu

tag 文件的作用一般是一段小代码,类似 include 文件的作用,tag文件中定义的attribute属性就相当于HTML标签中的id、class等属性,当jsp页面中使用了该标签并且给对应的属性指定了值以后,那么在tag文件中就可以使用“${属性名}”来获取对应属性的值。

1. 引入 tag 文件

<%@ taglib prefix="sys" tagdir="/WEB-INF/tags/sys" %>

2. 在/WEB-INF/tags/sys 下,新增一个gridselect.tag文件

   <%@ tag language="java" pageEncoding="UTF-8"%><%@ include file="/webpage/include/taglib.jsp"%><%@ attribute name="id" type="java.lang.String" required="true" description="编号"%><%@ attribute name="name" type="java.lang.String" required="true" description="隐藏域名称(ID)"%><%@ attribute name="value" type="java.lang.String" required="true" description="隐藏域值(ID)"%><%@ attribute name="labelName" type="java.lang.String" required="true" description="输入框名称(Name)"%><%@ attribute name="labelValue" type="java.lang.String" required="true" description="输入框值(Value)"%><%@ attribute name="fieldLabels" type="java.lang.String" required="true" description="表格Th里显示的名字"%><%@ attribute name="fieldKeys" type="java.lang.String" required="true" description="表格Td里显示的值"%><%@ attribute name="searchLabels" type="java.lang.String" required="true" description="检索框标签"%><%@ attribute name="searchKeys" type="java.lang.String" required="true" description="检索框key"%><%@ attribute name="title" type="java.lang.String" required="true" description="选择框标题"%><%@ attribute name="url" type="java.lang.String" required="true" description="数据地址"%><%@ attribute name="cssClass" type="java.lang.String" required="false" description="css样式"%><%@ attribute name="isMultiSelected" type="java.lang.Boolean" required="false" description="是否允许多选"%><%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择,如果限制,设置为disabled"%><input id="${id}Id" name="${name}"  type="hidden" value="${value}"/><div class="input-group" style="width: 100%"><input id="${id}Name"  name="${labelName }" ${allowInput?'':'readonly="readonly"'}  type="text" value="${labelValue}" data-msg-required="${dataMsgRequired}"class="${cssClass}" style="${cssStyle}"/><span class="input-group-btn"><button type="button"  id="${id}Button" class="btn <c:if test="${fn:contains(cssClass, 'input-sm')}"> btn-sm </c:if><c:if test="${fn:contains(cssClass, 'input-lg')}"> btn-lg </c:if>  btn-primary ${disabled} ${hideBtn ? 'hide' : ''}"><i class="fa fa-search"></i></button> <button type="button" id="${id}DelButton" class="close" data-dismiss="alert" style="position: absolute; top: 5px; right: 53px; z-index: 999; display: block;">×</button></span></div><label id="${id}Name-error" class="error" for="${id}Name" style="display:none"></label><script type="text/javascript">$(document).ready(function(){$("#${id}Button, #${id}Name").click(function(){if ($("#${id}Button").hasClass("disabled")){return true;}top.layer.open({type: 2,  area: ['800px', '500px'],title:"${title}",auto:true,name:'friend',content: "${ctx}/tag/gridselect?url="+encodeURIComponent("${url}")+"&fieldLabels="+encodeURIComponent("${fieldLabels}")+"&fieldKeys="+encodeURIComponent("${fieldKeys}")+"&searchLabels="+encodeURIComponent("${searchLabels}")+"&searchKeys="+encodeURIComponent("${searchKeys}")+"&isMultiSelected=${isMultiSelected? true:false}",btn: ['确定', '关闭'],yes: function(index, layero){var iframeWin = layero.find('iframe')[0].contentWindow; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();var items = iframeWin.getSelections();if(items == ""){jp.warning("必须选择一条数据!");return;}var ids = [];var names = [];for(var i=0; i<items.length; i++){var item = items[i];ids.push(item.id);names.push(item${fn:substring(labelName, fns:lastIndexOf(labelName, '.'), fn:length(labelName))})}$("#${id}Id").val(ids.join(","));$("#${id}Name").val(names.join(","));top.layer.close(index);//关闭对话框。},cancel: function(index){ }}); })$("#${id}DelButton").click(function(){// 是否限制选择,如果限制,设置为disabledif ($("#${id}Button").hasClass("disabled")){return true;}// 清除$("#${id}Id").val("");$("#${id}Name").val("");$("#${id}Name").focus();});})</script>

3. 在jsp中使用该tag

<sys:gridselect url="${ctx}/nation/info/basNationInfo/data" id="psnNation" name="psnNation" value="${hrPersonInfo.psnNation}" labelName="basNationInfo.natName" labelValue="${hrPersonInfo.natName}" title="选择民族" cssClass="form-control required"  fieldLabels="姓名|性别|出生年月|民族|籍贯|本人手机"  disabled="true" fieldKeys=" psnName|psnGender2|psnBirthday|natName|psnNativeplace|psnMobile" searchLabels="民族" searchKeys="natName" ></sys:gridselect>

20190328学习笔记 - JSP 中的 tag 文件相关推荐

  1. C# 学习笔记(12)hex文件转bin文件小工具

    C# 学习笔记(12)hex文件转bin文件小工具 hex文件格式 hex文件格式网上有很多 我这里参考HEX文件格式详解https://blog.csdn.net/weixin_39752827/a ...

  2. r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...

  3. Liunx学习笔记 - 07 - 02 正则表达式与文件格式化处理

    Liunx学习笔记 - 07 - 02 正则表达式与文件格式化处理 1 前言:啥是正则表达式 简单来讲,正则表达式是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的 ...

  4. Linux学习笔记(七):文件压缩、打包与备份

    Linux学习笔记(七):文件压缩.打包与备份 常见的压缩指令 gzip, zcat/zmore/zless/zgrep bzip2, bzcat/bzmore/bzless/bzgrep xz, x ...

  5. oracle rac 环境配置文件,学习笔记:Oracle RAC spfile参数文件配置案例详解

    天萃荷净 rac中的spfile探讨,记录一下Oracle RAC搭建完成后关于spfile参数文件的配置案例,与更改RAC环境中参数文件的方法 今天朋友的的rac,因为被同事做数据库升级,分别在两个 ...

  6. c#学习笔记05-treeview中添加图标

    创建树目录前面在学习笔记03中已经提到过 即树目录数据从XML文档中获取 添加图标主要用到ImageList控件 1.ImageList控件 在树目录对应存在的窗体中添加此控件 添加图标: 2.tre ...

  7. jsp中引入css文件不起作用

    jsp中引入css文件不起作用 笔者遇到的问题所在是jsp页面引入css文件后,样式无法加载,在SpringMVC的配置文件dispatcherServlet.xml中引入如下代码后解决: <m ...

  8. jsp实验中:tag文件报java.util.ArrayList cannot be cast to java.lang.String

    描述 解决思路 (1)第一步:可以看到信息中主要是Exception描述: 他描述23行处理出问题,23行是调用tag文件,也就是tag文件的处理出了问题. (2)然后第二步,看root cause. ...

  9. 基于weblogic 的EJB 学习笔记-JSP教程,资料/其它

    http://www.west263.com/www/info/14655-1.htm ejb 学习笔记 1.ejb 基础知识 (1) 无状态会话bean     不保存客户机的会话状态     优点 ...

最新文章

  1. 影响LAN/WAN方向流量的方法
  2. kitten编程猫里的工具函数
  3. 自动生成三层结构代码(3)--生成数据访问层Insert方法
  4. 自己搭建一个k8s环境
  5. Palindrome Index
  6. .net 任务调度 mysql_C#/.NET/.NET Core应用程序编程中实现定时任务调度的方法或者组件...
  7. MySQL主从架构搭建
  8. 蓝桥杯第十三届省赛题目(4月23日)答案汇总 python
  9. java完全自学手册(java完全自学手册pdf洪维恩)
  10. 1047: 对数表 C语言
  11. 第三次个人作业——关于K米(Andorid)的案例分析
  12. python爬虫基础教程:利用python抓取返利网商品信息
  13. Django @csrf_exempt不能在类视图中工作(Django @csrf_exempt not working in class View)
  14. JAVA 下的 pgp加密解密示例
  15. Windows下安装VMware
  16. ArcGis Engine二次开发入门(1)
  17. 大海捞针 Skia(C++) 第 1 期:Skia 环境搭建
  18. MAC使用小技巧之用好mac电脑?的10个必知的小技巧!
  19. 聊聊我的故事|最感人的是细枝末节
  20. VC++ 通过wmic获取主板和BIOS序列号

热门文章

  1. Modelsim学习笔记
  2. MySQL-HAVING的用法
  3. QQ群导出某人消息记录至文本【python版】
  4. 电脑给手机传音乐,手机上找不到文件解决办法。
  5. 在Ubuntu中使用天翼无线宽带
  6. IDISPLAY_SetDestination函数遇到的问题
  7. Android_RecyclerView实现上下滚动广告条(带图片)
  8. 在windows部署hadoopSpark和IDEA
  9. Lambda架构与Kappa架构对比
  10. 第1章 部署虚拟环境安装linux系统。