客户化jsp标签的作用
2015-09-02 23:51
741 查看
客户化jsp标签技术支持用户在jsp文件自定义标签,这样可以使jsp代码更加简洁
创建客户化jsp标签的步骤
1 创建标签的处理类
2 创建标签库描述文件
3 在jsp文件中引入标签库,然后插入标签
1创建标签的处理类MyTag.java,创建一个普通的class继承tagSupport类
2 创建标签库描述文件
3 在jsp文件中引入标签库,然后插入标签
在写properties类的时候,需要写一个文件massage.properties
<
4000
p>该文件是以键值对的形式存储的
工作过程:
1初始化一个servlet,服务器已启动就得到执行(InitServlet)执行的内容是将/WEB-INF/massage.properties加载到properties对象里面,就是properties对象就可以去读取/WEB-INF/massage.properties里面的内容了.将properties对象放置在全局变量中
服务器一启动,这个工作就结束了。
2当去访问tag.jsp页面的时候。指定好标签库uri=“/myTag”,使用的标签prefix=”hello” 当解析到标签时
getProperties就get到title了
创建客户化jsp标签的步骤
1 创建标签的处理类
2 创建标签库描述文件
3 在jsp文件中引入标签库,然后插入标签
1创建标签的处理类MyTag.java,创建一个普通的class继承tagSupport类
package com.hpu.tag; import java.util.Properties; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; public class MyTag extends TagSupport { private String key; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public int doEndTag() throws JspException { try { Properties ps= (Properties)this.pageContext.getAttribute("ps",pageContext.APPLICATION_SCOPE); String massage=ps.getProperty(key); this.pageContext.getOut().println(massage); } catch (Exception e) { e.printStackTrace(); } return EVAL_PAGE; } }
2 创建标签库描述文件
<?xml version="1.0" encoding="utf-8"?> <!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.1</jsp-version> <short-name>myTag</short-name> <uri>/myTag</uri> <tag> <name>massage</name> <tag-class>com.hpu.tag.MyTag</tag-class> <body-content>empty</body-content> <attribute> <name>key</name> <required>true</required> </attribute> </tag> </taglib>
3 在jsp文件中引入标签库,然后插入标签
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/myTag" prefix="hello" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'tag.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> <hello:massage key="title"/><br> <hello:massage key="body"/> </body> </html>
在写properties类的时候,需要写一个文件massage.properties
title=hello world body=welcome
<
4000
p>该文件是以键值对的形式存储的
工作过程:
1初始化一个servlet,服务器已启动就得到执行(InitServlet)执行的内容是将/WEB-INF/massage.properties加载到properties对象里面,就是properties对象就可以去读取/WEB-INF/massage.properties里面的内容了.将properties对象放置在全局变量中
context.setAttribute("ps",ps).
服务器一启动,这个工作就结束了。
2当去访问tag.jsp页面的时候。指定好标签库uri=“/myTag”,使用的标签prefix=”hello” 当解析到标签时
<hello:massage key="title"/>没有写doStartTag所以遇到标签开始什么都不做,遇到标签结束,调用doEndTag方法。从全局范围内将之前通过servlet对象存进去的properties对象get出来,get出来之后getProperties(key)。这个key是来自于属性hello:massage key=”title”。属性要提供跟属性一样的成员变量,调用get方法的同时自动调用set 方法,可以设置属性,取出来属性
getProperties就get到title了
相关文章推荐
- JavaScript API 设计原则
- js replace 用法
- javascript里的几个特殊值
- JavaScript编码规范
- Javascript中的自执行匿名函数(个人理解也叫立即执行的匿名函数)的理解
- JS笔记(一)闭包
- (JavaScript)调色板
- (JavaScript)案例二:多条件查询
- jsPlumb Demo源码分析
- JavaScript 开发者必备的10款 Sublime Text 插件
- (JavaScript)案例一:二级联动
- JavaScript学习笔记4-闭包
- JavaScript学习笔记-JavaScript声明全局变量三种方式的异同
- bzoj1028 [JSOI2007]麻将
- JS 案例-添加节点
- JS-进阶-JS DOM常用的节点操作
- JavaScript中单引号和双引号的区别
- JSP标签库
- 关于JavaScript中没有块级作用域的理解
- JS使用DOM对元素进行添加和修改