jsp版本2.1 servlet版本2.5 el表达式、jstl标签学习以及自定义标签(用标签实现业务逻辑和jsp页面的分离)
2013-06-09 20:36
886 查看
测试环境:MyEclipse 8.5 Java EE 5 新建 web project。容器环境 tomcat 6。JQuery 1.9
用自定义标签实现一个基本的部门检索功能,运行效果如下:
初始画面:
点击检索链接打开 部门选择对话框
移动到相应的行上
点击选择 会将选择的部门id和部门名称显示在之前的画面上
点击submit,可以将选择到的部门id传到后台 进行处理
简要的实现逻辑:
自定义标签封装html代码和jquery代码,点击检索时请求servlet检索出所有的部门信息展示在弹出的jsp对话框中,点击选择后拿到对话框的返回值并关闭对话框以及现在画面上对应的dom上
自定义的tld文件放在WEB-INF目录及其子目录下,tomcat会自动读取,内容如下
用自定义标签实现一个基本的部门检索功能,运行效果如下:
初始画面:
<%@ page contentType="text/html; charset=gb2312"%> <%@page import="com.test.taglib.bean.DepartSearchBean"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib prefix="common_control" uri="http://www.test.com/taglibs/site-utils"%> <html> <head> <title> 部门检索共通控件测试</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <script type="text/javascript" src="jquery/jquery-1.9.1.js"></script> </head> <body> <% DepartSearchBean departSearchBean = new DepartSearchBean(); departSearchBean.setDepartmentCode("123"); departSearchBean.setDepartmentName("abc"); request.setAttribute("departSearchBean",departSearchBean); %> <form id="form1" name="form1" action="department_submit.jsp"> <!-- 部门:<input type="text" id="depart_code" name="depart_code"><a id="depart_search" name="depart_search" href="#">检索</a><span id="depart_name"></span><br/> --> <common_control:department_search id="departsearchcontrol" initvalue="${departSearchBean}"></common_control:department_search> <input type="submit" value="submit"> </form> </body> </html>
点击检索链接打开 部门选择对话框
<%@ page contentType="text/html; charset=gb2312"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <title> 部门检索</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <script type="text/javascript" src="jquery/jquery-1.9.1.js"></script> <script type="text/javascript"> $(function(){ /* $('[id^="depart_id_"]').click(function(){ //alert("abc"); var id = $(this).attr("id"); $(":radio").each(function(){ //alert($(this).attr("id")); if ($(this).attr("id") != id) { $(this).removeAttr("checked"); } }); return true; }); */ $('[id^="depart_row_"]').mouseenter(function(){ $(this).css('color','blue'); var rowid = $(this).attr("id").split("_"); var id = "depart_id_" + rowid[2]; $(":radio").each(function(){ if ($(this).attr("id") != id) { $(this).removeAttr("checked"); } else { $(this).attr("checked", "checked"); } }); }); $('[id^="depart_row_"]').mouseleave(function(){ $(this).css('color','black'); }); $('[id^="depart_select_"]').click(function(){ var rowid = $(this).attr("id").split("_"); var index = rowid[2]; var argu = window.dialogArguments; var arguArr = argu.split(","); var retVal = ""; //alert($("#depart_code_"+index).text()); retVal += arguArr[0] + "=" + $("#depart_code_"+index).text(); retVal += ","; retVal += arguArr[1] + "=" + $("#depart_name_"+index).text(); window.returnValue = retVal; window.close(); }); }); </script> </head> <body> <table> <tr><td>ID</td><td>code</td><td>name</td><td>选择</td></tr> <c:forEach var="bean" items="${departSearchBeanList}" varStatus="status"> <c:set var="idx" value="${status.index + 1}"></c:set> <tr id="depart_row_${idx }"><td><input type="radio" id="depart_id_${idx }" name="depart_id_${idx }" /></td><td><span id="depart_code_${idx }">${bean.departmentCode }</span></td><td><span id="depart_name_${idx }">${bean.departmentName }</span></td><td><a id="depart_select_${idx }" href="#">选择</a></td></tr> </c:forEach> </table> </body> </html>
移动到相应的行上
点击选择 会将选择的部门id和部门名称显示在之前的画面上
点击submit,可以将选择到的部门id传到后台 进行处理
<%@ page contentType="text/html; charset=gb2312"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <title> 部门提交</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <script type="text/javascript" src="jquery/jquery-1.9.1.js"></script> </head> <body> <%=request.getParameter("depart_code") %> </body> </html>
简要的实现逻辑:
自定义标签封装html代码和jquery代码,点击检索时请求servlet检索出所有的部门信息展示在弹出的jsp对话框中,点击选择后拿到对话框的返回值并关闭对话框以及现在画面上对应的dom上
自定义的tld文件放在WEB-INF目录及其子目录下,tomcat会自动读取,内容如下
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2/EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>common_control</short-name> <uri>http://www.test.com/taglibs/site-utils</uri> <tag> <name>department_search</name> <tag-class>com.test.taglib.DepartmentSearchTag</tag-class> <attribute> <name>id</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>String</type> </attribute> <attribute> <name>initvalue</name> <required>false</required> <rtexprvalue>true</rtexprvalue> <type>com.test.taglib.bean.DepartSearchBean</type> </attribute> </tag> </taglib>
相关文章推荐
- Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL
- 学习笔记_用hibernateQBC动态查询+jsp的jstl标签库实现的动态查询以及分页特效
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- 【jsp总结】jsp成servlet、错误页面、pageContext九大隐式、静态包含、jsp标签、EL表达式、JSTL、CSS中的路径写法
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- Web小结---Servlet,JSP,过滤器和监听器,四个作用域和九个内置对象,EL表达式语言,自定义标签,JSTL,国际化与汉字的编码
- Jsp/Java代码分离.实现页面真正的代码分离 实现框架代码,jxui:page标签
- JSP页面中EL表达式语言和jstl标签库的使用详解
- 关于jsp页面自定义jstl标签简单项目配置
- JSTL标签急速秒杀jsp页面中的java代码---自定义函数
- 自定义jsp标签实现页面元素的权限控制
- jsp EL表达式结合JSTL标准标签实现分页
- jsp页面jstl标签/自定义标签
- 如何在JSP页面中使用JSTL标签实现if和if-else判断
- 如何在JSP页面快速输出从Servlet接收的数据_看JSTL常用C标签的威力
- jsp标签实现页面与代码分离
- JSP、EL表达式以及JSTL常用标签的用法
- C标签加EL表达式在jsp页面实现遍历后台内容
- 笔记之jsp标签、EL表达式、JSTL标签、函数、自定义标签
- jsp页面写jstl标签和el表达式