【Jsp】JSP自定义标签与MODEL1、MODEL2标准

在JSP2.0之后支持自定义标签,现在一般都是jsp2.4的版本了,所以无须考虑版本的问题。直接使用就可以了。虽然一般开发的过程中,很少会自己定义JSP标签,但是通过一个JSP自定义标签的学习,可以从一定程度上理解struts等框架把好好的JSP标签改得面目全非的机理。正如Jquery本质是Javascript一样,SSH实际上Jsp。其实也没有什么,一个简单的例子就能够完全说明如何在JSP中自定义的标签。

通过自定义标签就能够达到所谓的MODEL2标准,在展示层VIEW给别人看的网页中不得出现任何的服务器执行代码。如果出现了,就是那种MODEL1的标准。

一、基本目标

定义一个clock标签,这个标签还要求传入一个ID,

之后,如果JSP之中使用这个标签,传入一个ID,就会在页面显示当前的时间与传入的ID,如下图所示:

二、基本准备

这个东西不用引入任何的jar,web.xml文件可以利用eclipse for javaee自动生成,删除没用的东西,也不用配置任何东西,JSP2.0之后就自带定义标签库的属性,如下所示,web.xml自动生成的方法可以参考《【Javaweb】Eclipse for JavaEE新建的Web工程自动生成web.xml》(点击打开链接

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
</web-app>

网站目录结构如下图,在WEB-INF下新建一个tags文件夹,之后我们的标签都是tags:了,这个文件夹的命名决定了以后的标签头,这个文件夹以后就是我们的标签库,理论上这个tags放在哪里都可以,但是,为了不让别有用心的用户胡乱访问,所以还是放在WEB-INF之中:

三、制作过程

1、此次涉及到一个比较少见的,后缀名为.tag的文件,右击刚刚建好tags文件夹,选择New->Other...,新建一个tag文件。

2、在弹出的对话框,输入tags,选择JSP Tag,点击下一步,命名为clock,由于clock.tag在tags里面,以后调用这个标签就tags:clock了,你的文件夹与文件名的名字决定了这个以后标签的名字,就可以开始编辑clock.tag了

3、clock.tag文件如下所示,这个文件就是用来说明这个文件是干什么用,这就定义好tag:clock的动作了,ognl表达式里面的s:if标签,也就是这样的道理,在s文件夹下下面有个if.tag文件,然后写好这个if.tag所执行的工作,先输出当前时间,时间输出的JAVA代码与《【Java】有关System.currentTimeMillis()的思考》(点击打开链接)的一模一样,丝毫没改,然后把传入来id以<h1></h1>来显示,根本就一段HTML+JSP混写的代码

<!-- 改好网页头的编码为utf-8,引入相应的java包 -->
<%@ tag language="java" pageEncoding="utf-8" import="java.util.Date,java.text.SimpleDateFormat"%>
<!-- 这个本标签将会引入id参数 -->
<%@ attribute name="id" %>
<%
//如果要在jsp脚本中使用传入参数则这样写
request.getAttribute("a");
//输出时间
out.println(new SimpleDateFormat("yyyy年MM月dd日hh:mm:ss E").format(new Date(System.currentTimeMillis())).toString());
%>
<!-- 如果这个参数是直接输出的,则这样写 -->
<h1>${id}</h1>

4、在index.jsp对tags:clock标签传入参数“你好”,就会看到运行效果了。这样就形成了所谓的MODEL2网页编程规则,就是正常网页中不得出现任何的执行代码……说什么能够很好地提高网页代码的复用性。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>index</title>
</head>
<body>
<tags:clock id="你好" />
</body>
</html>
时间: 2024-10-06 18:41:37

【Jsp】JSP自定义标签与MODEL1、MODEL2标准的相关文章

Jsp开发自定义标签,自定义标签将字符串转成指定的时间格式显示

本例以将 字符串格式的时间转成指定的时间格式显示. 第一步.定义一个标签处理程序类,需要集成javax.servlet.jsp.tagext.TagSupport,代码如下: import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.T

【Jsp】JSP自己定义标签与MODEL1、MODEL2标准

在JSP2.0之后支持自己定义标签,如今一般都是jsp2.4的版本号了,所以无须考虑版本号的问题. 直接使用就能够了.尽管一般开发的过程中,非常少会自己定义JSP标签.可是通过一个JSP自己定义标签的学习.能够从一定程度上理解struts等框架把好好的JSP标签改得面目全非的机理.正如Jquery本质是Javascript一样,SSH实际上Jsp.事实上也没有什么,一个简单的样例就能够全然说明怎样在JSP中自己定义的标签. 通过自己定义标签就行达到所谓的MODEL2标准.在展示层VIEW给别人看

jsp的自定义标签

1.相对于JSTL或Spring等第三方标签库而言的,用来实现项目中特定的功能需求. 2.自定义标签基本的组成部分 ①页面上看得见的部分 [1]通过taglib引入标签库 [2]标签本身 ②xxx.tld文件:用来注册标签处理器类 ③标签处理器类 3.创建一个没有属性没有标签体的自定义标签 ①创建自定义标签的处理器类 [1]标准要求:实现接口javax.servlet.jsp.tagext.SimpleTag [2]实际操作:继承javax.servlet.jsp.tagext.SimpleTa

JavaWeb之 JSP:自定义标签

当jsp的内置标签和jstl标签库内的标签都满足不了需求,这时候就需要开发者自定义标签. 自定义标签 下面我们先来开发一个自定义标签,然后再说它的原理吧! 自定义标签的开发步骤 步骤一 编写一个普通的java类,继承TagSupport类~ package com.vmaxtam.dotest; import javax.servlet.jsp.tagext.TagSupport; public class MyTagTest extends TagSupport { } 步骤二 重写父类的se

[Java] JSP笔记 - 自定义标签

自定义标签的创建步骤: 自定义标签的四大功能: 自定义标签的类结构: 在 1.0 中呢, 可以将 <body-content> 的值设置为 JSP, 2.0中则不允许在自定义标签体中出现jsp代码. 接下来呢,我直接贴一些Demo代码: tagdatetag.tld  (标签声明 XML,将之方于 WEB-INF 目录中) <?xml version="1.0" encoding="UTF-8"?> <taglib xmlns=&quo

【JSP】自定义标签开放入门

JSP 自定义标签 自定义标签是用户定义的JSP语言元素.当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作. JSP标签扩展可以让你创建新的标签并且可以直接插入到一个JSP页面. JSP 2.0规范中引入Simple Tag Handlers来编写这些自定义标记. 你可以继承SimpleTagSupport类并重写的doTag()方法来开发一个最简单的自定义标签 开发步

Servlet和JSP之自定义标签学习

  此文章会讲述简单标签处理器,因为经典自定义标签处理器没有简单标签处理器方便使用,故在此不进行描述. 参考:慕课网的<JSP自定义标签>视频; <Servlet.JSP和Spring MVC初学指南>的第六章; IBM的<利用 JSP 2 提供的 SimpleTagSupport 开发自定义标签>; 菜鸟教程的JSP自定义标签文章. 自定义标签   自定义标签 自定义标签就是将方法封装到自定义标签处理类中,然后使用方法与JSTL标签来达到,解决JSP中JavaBean

jsp里面自定义标签常量详解

标签中静态常量: EVAL_BODY_INCLUDE:告诉服务器正文的内容,并把这些内容送入输出流 SKIP_BODY:告诉服务器不要处理正文内容 EVAL_PAGE:让服务器继续执行页面 SKIP_PAGE:让服务器不要处理剩余的页面 EVAL_BODY_AGAIN:让服务器继续处理正文内容,只有doAfterBody方法可以返回 EVAL_BODY_BUFFERED:BodyTag接口的字段,在doStartTag()返回 EVAL_BODY_INCLUDE.SKIP_BODY一般由doSt

JSP中自定义标签(结合easyui)——JSP中的TAG

使用了easyui的样式封装的下拉框标签: <%@ tag language="java" pageEncoding="utf-8"%> <%@ tag import="com.cseds.common.dic.DicHolder" %> <%@ tag import="com.cseds.common.dic.Dics" %> <%@ tag import="com.cse