标签:res encoding 一个 import 官方 ace lib 2.0 expr
刚进新公司不久,今天在看到项目中用到了.tag文件。刚開始我还以为这个是第三方类似freemarker的模板技术。问了下项目组的其它人员,原来这是jsp2.0以来就有的JSP Fragment技术。曾经做项目的时候从来没实用这种方式,要公用就用用jsp中的include和jsp:include的方式。事实上JSP Fragment也有include的作用,可是它更像第三方sitemesh技术。用于网页布局和修饰,能够将网页的内容和页面的结构分离。从而达到页面结构共享的目的。
以下的样例来说明怎么使用jsp fragment。
官方E文參考文档http://docs.oracle.com/javaee/5/tutorial/doc/bnama.html
1 首先在项目的WEB-INF/tags文件里,新建例如以下内容的tpl.tag文件
<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ attribute name="title"%>
<%@ attribute name="tpl1" fragment="true" required="true"%>
<%@ attribute name="tpl2" fragment="true" required="true"%>
<%@ attribute name="tpl3" fragment="true" required="true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>${title}</title>
<style type="text/css">
#div1,#div2,#div3{
width:90%;
margin:10px auto;
border:10px solid red;
}
</style>
</head>
<body>
<h1>jsp2.0标签文件</h1>
<div id="div1">
<jsp:invoke fragment="tpl1"/>
</div>
<div id="div2">
<jsp:invoke fragment="tpl2"/>
</div>
<div id="div3">
<jsp:invoke fragment="tpl3"/>
</div>
<h2>jsp2.0 fragment技术</h2>
</body>
</html><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="xjo" tagdir="/WEB-INF/tags"%> <xjo:tpl title="jsp标签文件的使用"> <jsp:attribute name="tpl1"> <h1>tpl1中的内容</h1> </jsp:attribute> <jsp:attribute name="tpl2"> <h1>tpl2中的内容</h1> </jsp:attribute> <jsp:attribute name="tpl3"> <h1>tpl3中的内容</h1> </jsp:attribute> </xjo:tpl>
标签文件必须存放在WEB-INF文件夹下,最好是在WEB-INF文件夹下再新建一个tags文件夹,然后将全部的标签文件都存放在这里。标签文件能够使用全部的JSP元素,可是不能使用page指令。标签文件多个一个tag指令
<%@ tag language="java"
pageEncoding=""
body-content="scriptless|empty|tagdependent"
deferredSyntaxAllowedAsLiteral="false"
description=""
display-name=""
dynamic-attributes=""
example=""
import=""
isELIgnored="false"
large-icon=""
small-icon=""
trimDirectiveWhitespaces="false"
%><%@include file="" %>
<%@ attribute name=""
description=""
fragment="false"
required="false"
rtexprvalue="true"
type=""
%><%@ variable alias=""
declare="true"
description=""
name-from-attribute=""
name-given=""
scope="NESTED|AT_BEGIN|AT_END"%><jsp:invoke fragment="" var="" scope="page|request|session|application" varReader=""/>
标签:res encoding 一个 import 官方 ace lib 2.0 expr
原文地址:http://www.cnblogs.com/mthoutai/p/7083255.html