20190328学习笔记 - JSP 中的 tag 文件
20190328学习笔记 - JSP 中的 tag 文件
- 对于tag 文件
- 1. 引入 tag 文件
- 2. 在/WEB-INF/tags/sys 下,新增一个gridselect.tag文件
- 3. 在jsp中使用该tag
在jsp文件中,可以引用 tag 和tld 文件,本文主要针对 tag
对于tag 文件
- 将此类文件放在 WEB-INF 下,比如 /WEB-INF/tags,tags 是目录,其下可以有多个.tag文件,如
tree.tag,menu.tag- 在jsp 中使用 <%@ taglib prefix=“sys” tagdir="/WEB-INF/tags/sys" %> 来引入
- 在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 文件相关推荐
- C# 学习笔记(12)hex文件转bin文件小工具
C# 学习笔记(12)hex文件转bin文件小工具 hex文件格式 hex文件格式网上有很多 我这里参考HEX文件格式详解https://blog.csdn.net/weixin_39752827/a ...
- r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数
在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...
- Liunx学习笔记 - 07 - 02 正则表达式与文件格式化处理
Liunx学习笔记 - 07 - 02 正则表达式与文件格式化处理 1 前言:啥是正则表达式 简单来讲,正则表达式是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的 ...
- Linux学习笔记(七):文件压缩、打包与备份
Linux学习笔记(七):文件压缩.打包与备份 常见的压缩指令 gzip, zcat/zmore/zless/zgrep bzip2, bzcat/bzmore/bzless/bzgrep xz, x ...
- oracle rac 环境配置文件,学习笔记:Oracle RAC spfile参数文件配置案例详解
天萃荷净 rac中的spfile探讨,记录一下Oracle RAC搭建完成后关于spfile参数文件的配置案例,与更改RAC环境中参数文件的方法 今天朋友的的rac,因为被同事做数据库升级,分别在两个 ...
- c#学习笔记05-treeview中添加图标
创建树目录前面在学习笔记03中已经提到过 即树目录数据从XML文档中获取 添加图标主要用到ImageList控件 1.ImageList控件 在树目录对应存在的窗体中添加此控件 添加图标: 2.tre ...
- jsp中引入css文件不起作用
jsp中引入css文件不起作用 笔者遇到的问题所在是jsp页面引入css文件后,样式无法加载,在SpringMVC的配置文件dispatcherServlet.xml中引入如下代码后解决: <m ...
- jsp实验中:tag文件报java.util.ArrayList cannot be cast to java.lang.String
描述 解决思路 (1)第一步:可以看到信息中主要是Exception描述: 他描述23行处理出问题,23行是调用tag文件,也就是tag文件的处理出了问题. (2)然后第二步,看root cause. ...
- 基于weblogic 的EJB 学习笔记-JSP教程,资料/其它
http://www.west263.com/www/info/14655-1.htm ejb 学习笔记 1.ejb 基础知识 (1) 无状态会话bean 不保存客户机的会话状态 优点 ...
最新文章
- 影响LAN/WAN方向流量的方法
- kitten编程猫里的工具函数
- 自动生成三层结构代码(3)--生成数据访问层Insert方法
- 自己搭建一个k8s环境
- Palindrome Index
- .net 任务调度 mysql_C#/.NET/.NET Core应用程序编程中实现定时任务调度的方法或者组件...
- MySQL主从架构搭建
- 蓝桥杯第十三届省赛题目(4月23日)答案汇总 python
- java完全自学手册(java完全自学手册pdf洪维恩)
- 1047: 对数表 C语言
- 第三次个人作业——关于K米(Andorid)的案例分析
- python爬虫基础教程:利用python抓取返利网商品信息
- Django @csrf_exempt不能在类视图中工作(Django @csrf_exempt not working in class View)
- JAVA 下的 pgp加密解密示例
- Windows下安装VMware
- ArcGis Engine二次开发入门(1)
- 大海捞针 Skia(C++) 第 1 期:Skia 环境搭建
- MAC使用小技巧之用好mac电脑?的10个必知的小技巧!
- 聊聊我的故事|最感人的是细枝末节
- VC++ 通过wmic获取主板和BIOS序列号