jsp自定义select标签的使用
2017-07-26 16:43
405 查看
项目中多次使用到了部门选择下拉框,于是决定把此下拉框提取成一个自定义标签。自定义标签可以方便统一管理和一处修改的好处
步骤一:定义java的tag类,这个类继承了spring的org.springframework.web.servlet.tags.RequestContextAwareTag类。
步骤二:定义tld文件dept_code.tld。文件放在WEB-INF目录下,否则会报错。
步骤三:定义tag标签文件deptCode.tag。与tld文件放同一目录下,
步骤四:web.xml中配置tld文件
步骤五:jsp使用自定义标签
以上就完成了一个自定义select标签,这个select标签是easyui的标签,页面加载以后会自动根据标签里的url: _ctx+’/dept/tree’ 去后台查询结果。
完成,另外可以参考(http://blog.csdn.net/mos_wen/article/details/53930647),根据这个参考实现自己的
步骤一:定义java的tag类,这个类继承了spring的org.springframework.web.servlet.tags.RequestContextAwareTag类。
@SuppressWarnings("serial") public class DeptCodeTag extends RequestContextAwareTag{ @Override protected int doStartTagInternal() throws Exception { //这里可以获取WebApplicationContext,然后获取service,调用service方法去获取部门集合,然后放到pageContext传递到前端进行select标签的组装。 return 0; } }
步骤二:定义tld文件dept_code.tld。文件放在WEB-INF目录下,否则会报错。
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.1</tlib-version><!--版本号--> <short-name>dept_Sel</short-name> <!--后面引用的短名称--> <uri>http://www.lancy.com/media/tag</uri> <!--定义uri,便于后面引用定位--> <tag> <name>deptCode</name> <!--名字--> <tag-class>com.lancy.customTag.dept.DeptCodeTag</tag-class> <!--指向步骤1中定义的java的tag类--> <body-content>empty</body-content> <!--使用empty即可--> </tag> </taglib>
步骤三:定义tag标签文件deptCode.tag。与tld文件放同一目录下,
<%@tag pageEncoding="utf-8" %><!--定义编码,防止乱码 --> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!--引入c标签--> <%@taglib prefix="deptSel" uri="http://www.lancy.com/media/tag" %> <!-- 引入我们自定义的tld文件,定义前缀为deptSel(这个可以根据自己项目任意定义),uri值是tld文件中的uri值--> <!-- 下面定义这个select标签需要的属性字段--> <!--name:属性的名字,required:使用这个标签时候,本属性是否必须的;type:这个属性值的类型; rtexprvalue:这个标签是否支持el表达式,我们设置为true,支持表达式,这样就可以在引用时候动态设置值--> <!--重点是定义一些属性,不同的部门选择框就可以有不同的名称,取值等--> <%@attribute name="hiddenName" required="true" rtexprvalue="true" %> <%@attribute name="value" required="true" rtexprvalue="true" %> <%@attribute name="name" required="true" rtexprvalue="true" %> <%-- <deptSel:deptCode/> --%><!--引入文件2中订阅的listLevelCode,就相当于引入了步骤一中的java代码,这样我们就能访问步骤一中定义的levelCodeList对象。yq就是第三行定义的前缀,liestLevelCode就是步骤2中定义的name值--> <select class="easyui-combotree" name="${name}" style="width:95%" data-options=" url: _ctx+'/dept/tree', readonly:false, required:false, parentField:'parentId', textField:'deptName', idField:'deptId', hiddenName:'${hiddenName}', multiple:true, hasDownArrow:false, cascadeCheck:false, values:'${value}', icons: [{ iconCls:'app-del', handler: function(e){ $(e.data.target).combotree('clear'); } }], prompt:'请选择部门' "> </select>
步骤四:web.xml中配置tld文件
<jsp-config> <taglib> <taglib-uri>http://www.lancy.com/media/tag</taglib-uri><!--这个地址就是步骤2中的uri值--> <taglib-location>/WEB-INF/tags/dept_code.tl 4000 d</taglib-location><!--这个值就是步骤2中定义的tld文件的路径--> </taglib> </jsp-config>
步骤五:jsp使用自定义标签
<%@ taglib prefix="deptSel" tagdir="/WEB-INF/tags" %><!--jsp页面引入标签-->
<deptSel:deptCode name="deptId" hiddenName="" value="${vo.deptId}"/> <!--deptSel是步骤3中定义的别名,deptCode是tag文件的名称-->
以上就完成了一个自定义select标签,这个select标签是easyui的标签,页面加载以后会自动根据标签里的url: _ctx+’/dept/tree’ 去后台查询结果。
@RequestMapping(value="/tree",method=RequestMethod.POST) @ResponseBody public Object tree(HttpServletRequest request){ List<SysDept> list = sysDeptService.query(request); return list; }
完成,另外可以参考(http://blog.csdn.net/mos_wen/article/details/53930647),根据这个参考实现自己的
相关文章推荐
- jsp自定义select选择标签和数据字典
- jsp 使用自定义标签时候错误
- jsp中Tag的使用(自定义标签)
- JSP自定义标签中不能使用<%=request.getSession.getAttribute("attributeName")%>
- jsp-config 自定义标签使用
- Jsp自定义标签使用笔记
- javaWeb 在jsp中 使用自定义标签输出访问者IP
- Java - 使用标签库有什么好处?如何自定义JSP标签?
- JSP自定义select标签 字典表数据
- 使用JSP自定义标签做页面片段的缓存
- 使用JSTL开发jsp自定义标签开发
- 使用JSTL开发jsp自定义标签开发---迭代标签
- jsp中的自定义标签的使用
- 使用自定义tld标签简化jsp的繁琐操作
- jsp自定义select选择标签和数据字典
- 基于JSP 自定义标签使用实例介绍
- JSP学习笔记(七十八):struts2中s:select标签的使用
- JSP自定义标签使用
- 多使用jsp的自定义标签
- 自定义JSP标签库及Properties使用