<jsp-config>包括<taglib>和<jsp-property-group>两个子元素。其中,<taglib>在jsp1.2就已经存在了,而<jsp-property-group>是jsp2.0增加的元素。
一、首先介绍一下taglib
taglib有两种配置方法,具体取决于web.xml开头出的文本类型声明,
a) 如果开头是下面这样的,
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
在web.xml中直接写<taglib>就可以了,如:
<taglib>
<taglib-uri>controls</taglib-uri>
<taglib-location>/WEB-INF/mycontrol.tld</taglib-location>
</taglib>
b) 如果开头是这样的
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
在web.xml中taglib需要卸载jsp-config标签中,如:
<jsp-config>
<taglib>
<taglib-uri>controls</taglib-uri>
<taglib-location>/WEB-INF/mycontrol.tl</taglib-location>
</taglib>
</jsp-config>
二、下面介绍一下jsp-property-group
先写一个例子,如下:
<jsp-config>
<taglib>
<taglib-uri>controls</taglib-uri>
<taglib-location>/WEB-INF/mycontrol.tld</taglib-location>
</taglib>
<jsp-property-group>
<description>JSP encoding example</description>
<display-name>JSP Configuration</display-name>
<url-pattern>*.jsp</url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>GBK</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude></include-prelude>
<include-coda></include-coda>
<description>html encoding example</description>
<display-name>JSP Configuration</display-name>
<url-pattern>*.html</url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>GBK</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude></include-prelude>
<include-coda></include-coda>
</jsp-property-group>
</jsp-config>
Jsp-property-group标签主要有一下8个属性:
1) <description>:设定的说明
2) <display-name>:设定名称
3) <url-pattern>:设定值所影响的范围,如/*.jsp
4) <el-ignored>:若为true,表示不支持EL语法
5) <scripting-invalid>:若为true,标识不支持<%scripting %>语法
6) <page-encoding>:设定jsp网页的编码
7) <include-prelude>:设置jsp网页的抬头,扩展名为.jspf,
如:<include-prelude>/jsp/segments/taglibs.jspf</include-prelude>
8) <include-coda>:设置jsp网页的结尾,扩展名为.jspf,
如:<include-prelude>/jsp/segments/coda.jspf</include-prelude>
解释:以上配置表明,在所有*.jsp和*.html的路径中都不能使用scriptlet(jsp脚本),因为这会是java代码和html代码混杂在一起,使项目可读性变弱,同时增加项目维护难度。
include-prelude设置每个文件的抬头为/jsp/segments/taglibs.jspf,include-prelude设置了每个文件的结尾/jsp/segments/coda.jspf,
记住,引入的文件必须是以.jspf为后缀的jsp插件框架文件。
通过引入抬头和结尾可以做一些标签申明和版权申明等类似工作。觉得很值得提倡!