jsp中的taglib有点类似asp.net中的customer control。自定义标签。

一个最简单的taglib使用例子:检查用户是否已经被登陆。

新建一个class: CheckLoginTag

package com.my.taglib;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.TagSupport; public class CheckLoginTag extends TagSupport {
private String role;
public String getRole() {
return this.role;
}
public void setRole(String role) {
this.role = role;
} public CheckLoginTag() {} public int doEndTag() {
try {
System.out.println(role);
String user = (String)pageContext.getSession().getAttribute("USER");
if(user == null || user.equals("")) {
HttpServletResponse response = (HttpServletResponse)pageContext.getResponse();
response.sendRedirect("/mytest/login");
}
}
catch(Exception e) {
e.printStackTrace();
}
return EVAL_PAGE;
}
}

在WEB-INF目录下建一个tag目录,新建一个文件:checking.tld

<?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">
<description>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>checking</short-name>
<uri>/taglibs/checking</uri>
<tag>
<description>Check Login</description>
<name>login</name>
<tag-class>com.my.taglib.CheckLoginTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>role</name>
<required>true</required>
</attribute>
</tag>
</taglib>

打开web.xml,加入内容到<web-app/>内:

    <jsp-config>
<taglib>
<taglib-uri>/WEB-INF/tags/checking.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/checking.tld</taglib-location>
</taglib>
</jsp-config>

新建一个JSP: testtag.jsp

<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%@ page import="java.util.*"%> <%@ taglib prefix="checking" uri="/WEB-INF/tags/checking.tld" %> <html>
<header>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</header>
<body>
<checking:login role="admin" />
</body>
</html>

运行结果:如果用户未登陆将会跳转到login.jsp。

taglib例子的更多相关文章

  1. (原创)ssm sql 例子(freemarker+jsp)

    ssm整合地址:http://www.cnblogs.com/xiaohuihui96/p/6104351.html 接下讲解一个插入语句的流程和顺带讲解freemarker+jsp视图的整合 初次接 ...

  2. Struts2入门(一)——环境搭建和简单例子(Struts2 2.5.2版本)

    一.前言 1.了解三大框架 什么是框架? 框架是一种规范,一种规则,一种把技术组织起来的规则,这就是框架. 什么是三大框架(SSH),Struts.hibernate和spring的作用是什么? St ...

  3. 杂谈 Taglib、EL、OGNL

    本篇主要是自己对 JavaWeb中 EL.OGNL.Taglib 个人理解. 因为以上内容都是在 JSP 的基础下产生的概念, 首先得说说我眼中的 JSP. 她自由的.奔放的,就像辽阔的大海,跨越任何 ...

  4. 【zTree】 zTree使用的 小例子

    使用zTree树不是第一次了  但是 还是翻阅着之前做的 对照着 使用起来比较方便  这里就把小例子列出来   总结一下使用步骤 这样方便下次使用起来方便一点 使用zTree树的步骤: 1.首先  在 ...

  5. struts2中把action中的值传递到jsp页面的例子

    例子: RegistAction的代码: package com.wss.action; import javax.servlet.http.HttpServletRequest; import or ...

  6. Spring 3.x 实践 第一个例子(Spring 3.x 企业应用开发实战读书笔记第二章)

    前言:工作之后一直在搞android,现在需要更多和后台的人员交涉,技术栈不一样,难免鸡同鸭讲,所以稍稍学习下. 这个例子取自于<Spring 3.x 企业应用开发实战>一书中的第二章,I ...

  7. Taglib、EL、OGNL

    Taglib.EL.OGNL 阅读目录 1. Taglib(tag library) 标签库 2. EL(Expression Language) 表达式 3. OGNL(Object-Graph N ...

  8. spring mvc 提交表单的例子

    1. 构建MAVEN项目,然后转换成web格式,结构图如下: 2. 通过@RequestMapping来进行配置,当输入URL时,会以此找到对应方法执行,首先调用setupForm方法,该方法主要是生 ...

  9. jsf小例子

    有人问我用过jsf没?   当时没有用过,就看了一下: 写了一个小例子  JSF和struts2 差不多的,都有一些配置和跳转 struts2的action配置和JSF的faces-config.xm ...

随机推荐

  1. matlab自带princomp(PCA降维方式)

    matlab 中自带的函数就不必怀疑. princomp:principal componet analysis (PCA). [COEFF,SCORE,latent,tsquare]=princom ...

  2. Fragment中调用Activity的UI

    1:Fragment内定义一个接口,或外部定义一个接口, 2:Fragment定义一个接口对象的属性 3:Activity实现这个接口 4:Fragment的onAttach方法中强转Activity ...

  3. python--函数--5

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 一.什么是函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据 ...

  4. 学霸网站之NABCD

    1.需求(Need) 随着社会的发展,互联网产业得到了飞速的发展,如今,互联网在各个领域都取得了至关重要的作用,随之而来的数量庞大的数据也让我们每个人在学习生活中倍感压力,如何才能在这些数据中找到自己 ...

  5. Mac下的利器们介绍

    先说说一些快捷键吧,从windows下过来还不很习惯: ctrl + 开关 关机等提示 ctrl+shift+开关 关闭显示器 cmd+option+v 相当于剪贴 cmd+tab,对于最小化了的窗口 ...

  6. (转) 实时SLAM的未来及与深度学习的比较

          首页 视界智尚 算法技术 每日技术 来打我呀 注册     实时SLAM的未来及与深度学习的比较 The Future of Real-Time SLAM and “Deep Learni ...

  7. breakpoints

    https://blogs.msdn.microsoft.com/visualstudioalm/2013/10/07/breakpoints-in-visual-studio-2013/ Using ...

  8. 转-OpenJDK源码阅读导航跟编译

    OpenJDK源码阅读导航 OpenJDK源码阅读导航 博客分类: Virtual Machine HotSpot VM Java OpenJDK openjdk 这是链接帖.主体内容都在各链接中.  ...

  9. Debug

    memory dump就是程序留下的一个犯罪现场,而你就是一个侦探,侦查技术越高,发现的秘密也越多,破案也就越容易.

  10. NDK环境搭建