项目需要大量使用自定义标签,讨厌的<%%>和<%=-%>,加上html+js+jquery
那么好吧,玩吧! 记下来,给自己个备忘。
1.先上个基础的,复习一下
注意:定义的变量,可以直接在js中使用,当做参数或值。这很重要,即传来的参数就可以在这直接用到js中
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <% String name = "mengxianjun"; String inputReadonly = "readonly='true'"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <input type="text" id="test" value="" onblur="checkInput<%=name%>()" <%=inputReadonly%>/> </body> <script type="text/javascript"> <% if(name!=null){ %> alert('name不为空:'+'<%=name%>'); <% } %> var myName = '<%=name%>'; document.getElementById('test').value=myName; function checkInput<%=name%>() { alert('input 鼠标离开事件'); } </script> </html>
2.自定义标签,怎么使用(PSAreaTag.tag)
<%@ tag pageEncoding="UTF-8" import="java.util.*,com.hanpeng.base.util.SelectManagerRequest" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ attribute name="id" required="true" rtexprvalue="true"%> <%@ attribute name="name" required="true" rtexprvalue="true"%> <%@ attribute name="pid" required="false" rtexprvalue="true"%> <%@ attribute name="action" required="false" rtexprvalue="true"%> <%@ attribute name="isSelect" required="false" rtexprvalue="true" %> <!-- --> <%@ attribute name="isShowHead" required="false" rtexprvalue="true" type="java.lang.Boolean"%> <!-- 是否显示请选择 --> <%@ attribute name="headinfo" required="false" rtexprvalue="true" %> <!-- 自定义下拉框默认显示 --> <%@ attribute name="sendMethod" required="false" rtexprvalue="true" %> <!-- 调用参数 --> <%@ attribute name="disabledstate" required="false" rtexprvalue="true" %> <!-- 可传任意值 如:disabled=true --> <%@ attribute name="widlength" required="false" rtexprvalue="true" %> <!-- 设置宽度 --> <%@ attribute name="diyClass" required="false" rtexprvalue="true" %> <!-- 自定义样式 --> <% List list = null; if(pid == null && sendMethod != null){ if("areaLinkMenus".equals(sendMethod)) list = SelectManagerRequest.getAreaProvince(request);/* 省市联动 */ if("inOrOutProvince".equals(sendMethod)) list = SelectManagerRequest.getInOrOutProvince(request);/* 省市联动 */ } %> <select id="<%=id %>" name="<%=name %>" class="<%=diyClass %>" <%=disabledstate %> style="<%=widlength %>"> <% if(isShowHead != null && isShowHead == true){ %> <% if(headinfo != null){ %> <option value="" selected ><%=headinfo %></option> <% }else{ %> <option value="" selected >请选择</option> <% } %> <% } %> <% if(list != null && !list.isEmpty()){ %> <% for (int i=0;i<list.size();i++ ){ java.util.HashMap ot = (java.util.HashMap)list.get(i); String oti = ot.get("val").toString(); String selected = ""; if(oti.equals(isSelect)){ selected = "selected"; } %> <option value="<%=ot.get("val")%>" name="<%=ot.get("key") %>" <%=selected%> ><%=ot.get("key")%></option> <% } %> <% } %> </select> <%if(pid != null && !pid.equals("") && action != null && !action.equals("")){ %> <script type="text/javascript" src="<%=request.getContextPath() %>/js/doubleCombo/doubleCombo.js"></script> <script type="text/javascript"> $(document).ready(function(){ new DoubleCombo("<%=pid %>","<%=id %>","<%=action %>",{ errorHandler:function(request){ alert("网络交互出错"); } <% if(isShowHead != null && isShowHead == true){ %> <% if(headinfo != null){ %> ,head: '<%=headinfo %>' <% }else{ %> ,head: '请选择' <% } %> <% } %> <% if(isSelect != null){ %> ,defaultChild: '<%=isSelect %>' <% } %> }).masterComboChanged(); }); </script> <%} %>