jsp tag 直接文件实现
引入
<%@ taglib prefix="sys" tagdir="/WEB-INF/tags/sys" %>
这里注意/WEB-INF/tags/sys这里是一个目录,目录下有很多tag文件如下,调用sys:xxx,就会在当前目录下找xxx.tag的文件,必须有对应xxx.tag的文件与之对应
<%@ tag language="java" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %><%@ attribute name="typeCode" type="java.lang.String" required="true" description="字典code"%><%@ attribute name="defaultValue" type="java.lang.String" description="默认选中"%><%@ attribute name="style" type="java.lang.String" description="默认选中"%><%@ attribute name="cls" type="java.lang.String" description="默认选中"%><%@ attribute name="name" type="java.lang.String" description="默认选中"%><select style="${style}" class="${cls}" name="${name}" id="${name}" ><option value="" >请选择... </option><c:if test="${not empty typeCode}"><c:forEach items="${fns:getDictList(typeCode)}" var='dict'><option value='${dict.VALUE}' ${defaultValue==dict.VALUE?'selected':''}>${dict.TEXT}</option></c:forEach></c:if></select>attribute的属性介绍如下:
1. name :这个attribute的名称.
2. required : true/false, 是否必须的.
3. rtexprvalue : true/false, 这个attribute可否使用EL表达式, 否则为纯文本.
4. type : 设定这个attribute的类型, jsp容器会把结果自动转换成这个类.
如此,jsp名就是标签名,例如这个jsp叫 select.jsp,那么它的用法就是
<sys:select cls="formselect" name="MODULE_TYPE" typeCode="HOME_MODULE_TYPE" defaultValue="${record.MODULE_TYPE }" />
附上一个实际例子
treeselect.tag
<%@ tag language="java" pageEncoding="UTF-8"%><%@ include file="/WEB-INF/views/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="输入框值(Name)"%><%@ attribute name="title" type="java.lang.String" required="true" description="选择框标题"%><%@ attribute name="url" type="java.lang.String" required="true" description="树结构数据地址"%><%@ attribute name="checked" type="java.lang.Boolean" required="false" description="是否显示复选框,如果不需要返回父节点,请设置notAllowSelectParent为true"%><%@ attribute name="extId" type="java.lang.String" required="false" description="排除掉的编号(不能选择的编号)"%><%@ attribute name="isAll" type="java.lang.Boolean" required="false" description="是否列出全部数据,设置true则不进行数据权限过滤(目前仅对Office有效)"%><%@ attribute name="notAllowSelectRoot" type="java.lang.Boolean" required="false" description="不允许选择根节点"%><%@ attribute name="notAllowSelectParent" type="java.lang.Boolean" required="false" description="不允许选择父节点"%><%@ attribute name="module" type="java.lang.String" required="false" description="过滤栏目模型(只显示指定模型,仅针对CMS的Category树)"%><%@ attribute name="selectScopeModule" type="java.lang.Boolean" required="false" description="选择范围内的模型(控制不能选择公共模型,不能选择本栏目外的模型)(仅针对CMS的Category树)"%><%@ attribute name="allowClear" type="java.lang.Boolean" required="false" description="是否允许清除"%><%@ attribute name="allowInput" type="java.lang.Boolean" required="false" description="文本框可填写"%><%@ attribute name="cssClass" type="java.lang.String" required="false" description="css样式"%><%@ attribute name="cssStyle" type="java.lang.String" required="false" description="css样式"%><%@ attribute name="smallBtn" type="java.lang.Boolean" required="false" description="缩小按钮显示"%><%@ attribute name="hideBtn" type="java.lang.Boolean" required="false" description="是否显示按钮"%><%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择,如果限制,设置为disabled"%><%@ attribute name="dataMsgRequired" type="java.lang.String" required="false" description=""%><div class="input-append"><input id="${id}Id" name="${name}" class="${cssClass}" type="hidden" value="${value}"/><input id="${id}Name" name="${labelName}" ${allowInput?'':'readonly="readonly"'} type="text" value="${labelValue}" data-msg-required="${dataMsgRequired}"class="${cssClass}" style="${cssStyle}"/><a id="${id}Button" href="javascript:" class="btn ${disabled} ${hideBtn ? 'hide' : ''}" style="${smallBtn?'padding:4px 2px;':''}"> <i class="icon-search"></i> </a> </div><script type="text/javascript">$("#${id}Button, #${id}Name").click(function(){// 是否限制选择,如果限制,设置为disabledif ($("#${id}Button").hasClass("disabled")){return true;}// 正常打开top.$.jBox.open("iframe:${ctx}/tag/treeselect?url="+encodeURIComponent("${url}")+"&module=${module}&checked=${checked}&extId=${extId}&isAll=${isAll}", "选择${title}", 300, 420, {ajaxData:{selectIds: $("#${id}Id").val()},buttons:{"确定":"ok", ${allowClear?"\"清除\":\"clear\", ":""}"关闭":true}, submit:function(v, h, f){if (v=="ok"){var tree = h.find("iframe")[0].contentWindow.tree;//h.find("iframe").contents();var ids = [], names = [], nodes = [];if ("${checked}" == "true"){nodes = tree.getCheckedNodes(true);}else{nodes = tree.getSelectedNodes();}for(var i=0; i<nodes.length; i++) {//<c:if test="${checked && notAllowSelectParent}">if (nodes[i].isParent){continue; // 如果为复选框选择,则过滤掉父节点}//</c:if><c:if test="${notAllowSelectRoot}">if (nodes[i].level == 0){top.$.jBox.tip("不能选择根节点("+nodes[i].name+")请重新选择。");return false;}//</c:if><c:if test="${notAllowSelectParent}">if (nodes[i].isParent){top.$.jBox.tip("不能选择父节点("+nodes[i].name+")请重新选择。");return false;}//</c:if><c:if test="${not empty module && selectScopeModule}">if (nodes[i].module == ""){top.$.jBox.tip("不能选择公共模型("+nodes[i].name+")请重新选择。");return false;}else if (nodes[i].module != "${module}"){top.$.jBox.tip("不能选择当前栏目以外的栏目模型,请重新选择。");return false;}//</c:if>ids.push(nodes[i].id);names.push(nodes[i].name);//<c:if test="${!checked}">break; // 如果为非复选框选择,则返回第一个选择 </c:if>}$("#${id}Id").val(ids.join(",").replace(/u_/ig,""));$("#${id}Name").val(names.join(","));}//<c:if test="${allowClear}">else if (v=="clear"){$("#${id}Id").val("");$("#${id}Name").val("");}//</c:if>if(typeof ${id}TreeselectCallBack == 'function'){${id}TreeselectCallBack(v, h, f);}}, loaded:function(h){$(".jbox-content", top.document).css("overflow-y","hidden");}});});</script>
jsp tag 直接文件实现的更多相关文章
- JSP TAG
Jsp tag 能够灵活的将公共JSP代码模块化,类似<jsp:include page="./include.jsp"></jsp:include>等等. ...
- Servlet和JSP之标签文件学习
在上一篇文章中介绍了自定义标签的用法,接下来介绍标签文件的用法啦. tag file指令 tag file简介 用tag file的方式,无需编写标签处理类和标签库描述文件,也可以自定义标签.tag ...
- Liferay JSP Tag Libraries介绍
Liferay自带了很多标签库,这极大地提高了开发Liferay项目的效率. 下面让我们一起来探索吧. 什么是标签库? 什么是JSP标签? 什么是JSTL? 标签库由下面这几部分组成: Tag Lib ...
- jsp读取properties文件
jsp读取properties文件 jsp中读取properties文件,并把值设到js变量中: mpi.properties文件内容: MerchantID=00000820 CustomerEMa ...
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
使用Eclipse编辑jsp.js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲.将所有用过的方法罗列如下: 1.取消验证 windo ...
- Java使用JSP Tag Files & JSP EL Functions打造你自己的页面模板
1. 简单说明:在JSP 2.0后, 你不再需要大刀阔斧地定义一堆TagSupport或BodyTagSupport, 使用JSP Tag Files技术可以实现功能强大的页面模板技术. 在这里抛砖引 ...
- Eclipse编辑jsp、js文件时,经常出现卡死现象解决汇总
使用Eclipse编辑jsp.js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲.将所有用过的方法罗列如下: 1.取消验证 windo ...
- eclipse中web项目部署以后jsp的java文件找不到问题(Tomcat配置serverlocations)
我的开发环境:eclipse kepler (4.3)+tomcat7.0.42. 在我想看eclipse中web项目jsp文件被tomcat转换成java以后的java源文件的位置,发现正常情况下的 ...
- JSP生成word文件
1.jsp生成word文件,直接改动jsp格式: <%@ page contentType="application/vnd.ms-word;charset=GB2312"% ...
随机推荐
- [ToDo]Thrift学习
这里有较详细的Java项目配置过程: http://bglmmz.iteye.com/blog/2058785 下面有Java项目的示例介绍: http://www.tuicool.com/artic ...
- URLRewrite地址重定向的实现
URLRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址.其优点有: (1)提高安全性,可以有效的避免一些参数名.ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规 ...
- 说说C#之父——安德斯·海尔斯伯格
安德斯·海尔斯伯格(Anders Hejlsberg,1960.12~),丹麦人,Turbo Pascal编译器的主要作者,Delphi和.NET之父! 看到照片的那一刹那儿,我就觉得帅爆了,53岁的 ...
- 操作系统开发之——一个简单的Bootsect
先吓唬一下读者朋友呵呵,直接发代码:(这是UOS操作系统的Bootsect)(有兴趣的朋友能够增加我们,联系方式在最后) ;------------------------------ ;文件名称:B ...
- Ubuntu 下的webservices
搞 了一下午: 开发server程序.需使用gSOAP生成server端代码框架. 我们有两种做法: 编写WSDL,使用wsdl2h生成头文件,再soapcpp2生成框架代码. 编写头文件.使用soa ...
- 算法笔记_071:SPFA算法简单介绍(Java)
目录 1 问题描述 2 解决方案 2.1 具体编码 1 问题描述 何为spfa(Shortest Path Faster Algorithm)算法? spfa算法功能:给定一个加权连通图,选取一个 ...
- Xshell5 破解
Xshell5激活码 Xshell5激活方式Xshell5破解版 Xshell是一个用于MS Windows平台的强大的SSH,TELNET,和RLOGIN终端仿真软件.它使得用户能轻松和安全地从Wi ...
- windwos at 以及shutdown使用方法
at 12:00 shutdown -r如果今天12点没过去,今天12点重启,如果今天12点已经过去,明天12点重启.每天12点重启的命令是at 12:00 /every:Monday,Tuesday ...
- struts2 result type类型
result标签中type的类型 类型 说明 chain 用于Action链式处理 dispatcher 用于整合JSP,是<result>元素默认的类型 freemarket 用来整合F ...
- struts struts拦截器(过滤器)
在struts中尽量避免自定义拦截器,因为大部分需要自己定义拦截器的时候,设计思路就不对了.大部分拦截器框架都有给你定义好了.而且如果在struts中定义拦截器相当于和这个框架绑定了,假如以后要扩展或 ...