文档章节

使用tag file定义模版

hyanqing
 hyanqing
发布于 2013/04/06 19:02
字数 425
阅读 117
收藏 0

码上生花,ECharts 作品展示赛正式启动!>>>

jsp2.0以上的版本,增加了一个tag file的功能,个人认为类似于freemarker中的宏功能,我们也可以用这种新特性来制作页面的通用模版(不是说的静态页面):

1、首页在WEB-INF下新建目录tags,这个名字不能更改,然后在此目录下新建.tag文件(也可以再建目录进行分类),如base.tag,填入以下代码:


<%@ tag language="java" pageEncoding="UTF-8" trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ attribute name="title" %>
<%@ attribute name="menu" %>
<%@ attribute name="left" %>
<%@ attribute name="footer"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>${empty title ? "默认标题" : title }</title>
</head>
<body>
<div>
   <div style="height:30px;border:1px solid red;">
   		<c:if test="${empty menu }">这是默认菜单栏</c:if>${menu}
   </div>
   <div style="height:550px;">
	   <div style="width:25%;height:99%;border:1px solid black;float:left;">
	     <c:if test="${empty left }">这是默认左边栏</c:if>${left }
	   </div>
	   <div style="color:green;float:left;">
	   	<jsp:doBody/>
	   </div>
   </div>
   <div style="height:30px;border:1px solid red;">
   	<c:if test="${empty footer }">这是默认footer栏</c:if>${footer }
   </div>
</div>
</body>
</html>

2、上述模版已制定好,在需要使用这个模版进行调用,跟JSP其他标签没什么两样,先在页面头部导入标签:我是把base.tag放在ui目录下


<%@ taglib prefix="ui" tagdir="/WEB-INF/tags/ui" %>



<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="ui" tagdir="/WEB-INF/tags/ui" %>
<ui:base>
   <jsp:attribute name="menu">自定义菜单</jsp:attribute>
   <jsp:body>
   	 <form action="">
	   	   用户名<input typ="text" name="username"/>
	   </form>
   </jsp:body>
</ui:base>
注意:当使用 jsp:attribute覆盖默认值的时候,主体内容必须放在 <jsp:body>之间


© 著作权归作者所有

hyanqing
粉丝 5
博文 4
码字总数 1344
作品 0
杭州
程序员
私信 提问
加载中
请先登录后再评论。
2.0模版标签手册beta版

模板标签手册 海盗模板引擎 海盗云商系统(以下简称海盗)的模板引擎是基于原始PHP的「解释型」模板文件引擎,故无论在模板文件里如何编写标签代码,引擎均会转换为原始PHP语句进行解析。 也就...

海绵的歇斯底里
2016/03/15
2
0
C++模版函数

C++中的模版总体可以分为两大类:模版函数、模版类。本篇文章先写模版函数,接下来会介绍模版类。 定义:模版函数是通用的函数描述,也就是说它们使用通用类型来定义,其中的通用类型可用具体...

胡壮壮
2017/04/27
0
0
小程序 template 模版使用方法

小程序开发语言虽然只能运行在微信小程序中, 但是它的设计同样遵循了主流前端框架的主要特征——组件化,在小程序中组件化的实现有两种方式: 和 。 这两种方式分别适用于不同的场景。 主要用...

闲不住的李先森
2019/04/12
0
0
VIM使用系列:.vimrc配置文件和项目管理脚本

前一文写到了使用VIM进行项目开发的准备工作,之后进入春节假期,文章也就停了两个礼拜。今天开始正式上班,继续写VIM使用系列的文章,本文主要是贴出本人简陋的.vimrc配置文件和项目管理脚本...

水海云
2013/02/18
2.2K
13
angularjs 指令详解

angularjs 指令详解 - template, restrict, replace 【转自:http://www.cnblogs.com/haogj/p/3601528.html】 通过指令机制,angularjs 提供了一个强大的扩展系统,我们可以通过自定义指令来...

罗兹威尔
2017/06/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在macOS或OS X上安装pip? - How do I install pip on macOS or OS X?

问题: This post is a Community Wiki . 这篇文章是社区维基 。 Edit existing answers to improve this post. 编辑现有答案以改善此职位。 It is not currently accepting new answers. 它......

fyin1314
42分钟前
11
0
net.sf.JSONException Map中value字段为null,服务响应500

6月2号凌晨系统生产发布,2号白天仓库作业时有仓库拣选单打印面单接口500,不是所有的拣选单掉接口都是500, 当时通过接口响应正产和响应500,逻辑梳理以及数据对比,最后发现是Map 对象里面...

Lbj虞
49分钟前
9
0
SpringMVC异步请求

AsyncController @Controllerpublic class AsyncController { /** * 1. 控制器返回Callable * 2. Spring异步处理,将Callable提交到TaskExecutor,使用隔离的线城进行执行...

与你同行7Melody
今天
5
0
在动态创建的元素上进行事件绑定? - Event binding on dynamically created elements?

问题: I have a bit of code where I am looping through all the select boxes on a page and binding a .hover event to them to do a bit of twiddling with their width on mouse on/of......

javail
今天
19
0
js 使用canvas 旋转 图片

最左边是原始图片,中间是canvas内容,右边是将canvas内容导出到img标签中 canvas绘图时,确定图片的原始尺寸,不是显示的dom大小,需要创建元素后获得 如果使用dom大小的话,会在绘制时只能...

阿豪boy
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部