JSP Tag文件总结

Tag文件是<jsp:include>替代技术,也是为了提高JSP页面中代码的模块化和重用;可以被JSP页面动态加载调用;

对于tag标签,需要掌握:tag文件的定义、tag文件的使用、如何定义tag的属性,如何定义tag文件的返回值、tag文件的嵌套调用

1、Tag文件存放位置

Tag文件存放在项目的WEB-INF/Tags目录下;用户可以在该目录下设置子目录;

2、如何在JSP页面中调用Tag文件

需要2步:

(1)使用taglib指令引入标记:

           

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

   其中tagdir属性设置tag文件存放的位置;prefix属性设置访问把tag的前缀,目的是用于避免tag的名字冲突;

(2)在JSP页面中调用:

         

<Tag文件 />

<Tag文件 >
   标记体
</Tag文件>

     当JSP页面调用一个Tag文件时可能希望动态地向该Tag文件传递信息,那么就可以使用带有标记体的Tag标记来执行一个Tag文件,Tag标记中的“标记体”就会传递给相应的Tag文件,这个Tag文件通过使用
        <jsp:doBody />
标记处理JSP页面传递过来的“标记体”。

3、tag指令常见的属性有哪些?

    body-content、pageEncoding、language、import

  (1)body-content:该属性用于确定JSP页面使用该Tag标记时是否可以有body;该属性的值可以设置为empt、tagdependent、JSP 、scriptless(默认值)

    • empty:表示JSP页面必须使用无标记体的方式调用标签,即<Tag文件名  />
    • tagdependent:标签体内容直接写入BodyContent,由自定义标签自己进行处理,而不被JSP容器解释;
<test:myList>
select name.age from users
</test:myList>
    • JSP:接受所有JSP语法,如定制的或内部的tag、script、静态html、脚本元素、JSP指令和动作
<my:test>
    <%= request.getProtocol() %>
</my:test>
  • scriptless:接受文本、EL和JSP动作;

 (2)language:       指定tag文件使用的脚本语言;

 (3)import:           导入tag要使用的类,默认如下包已导入:"java.lang.*"、 "javax.servlet.*"、 "javax.servlet.jsp.*"、"javax.servlet.http.*"

(4)pageEncoding:tag文件的编码方式,默认为ISO-8859-1;

 

4、JSP页面如何向tag文件传递参数?

可以在tag文件中通过attribute指令设置tag需要接收的属性,这样,jsp页面可以通过设置的属性向tag文件传递参数,如果把attribute指令相当于用于定于函数的参数

<%@ attribute name="对象名“ required=”true|false“ type="对象类型"
<%--tag文件中属性的定义 --%>
<%@  attribute name="length" required="true" %>

<%-- JSP 调用tag文件  --%>
<computer:myTag length="1000" />

5、Tag文件如何向调用的JSP页面返回结果?

(1)首先在tag文件中使用variable指令定义需要返回的对象,语法如下:

<%@ variable name-given="对象名字” variable-class="对象的类型" scope=“AT_END” %>

 (2)在tag文件中使用

jspContext调用setAttribute(“对象的名字”,对象的引用)方法存储对象的名字以及该对象的引用

 (3)在JSP页面中调用tag文件,调用完成后可以直接使用“对象名”

猜你喜欢

转载自xiebh.iteye.com/blog/2364016