使用tag file定义模版
博客专区 > hyanqing 的博客 > 博客详情
使用tag file定义模版
hyanqing 发表于5年前
使用tag file定义模版
  • 发表于 5年前
  • 阅读 109
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

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>之间


标签: jsp taglib tag file
共有 人打赏支持
粉丝 5
博文 4
码字总数 1344
×
hyanqing
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: