jsp页面:
common.jspf文件
如果想把一个jspf的文件引入(incurred)到一个jsp页面中,只能使用"@include"指令引入,jspf文件中的内容才能被解析并且执行jspf文件中的指令;
如果使用<jsp:include>引入,jspf文件中的内容不会被编译,它直接把jspf的内容包含进去,即jspf文件中的jsp指令和tag不会被执行
例如:
<jsp:include page="xx.jspf" flush="true"></jsp:include>
用jsp动态包含这个jspf文件后页面显示的内容是没有编译直接把源码包含进来了。
问题分析:
jspf并不是像jsp一样是JSP Servlet的默认的扩展名(Tomcat 5.0.28/Servlet 2.4/JSP 2.0),用jsp动态包含jspf后,jsp引擎不会把他当做jsp文件来编译。
如果使用的tomcat服务器,则需求在tomcat下conf/web.xml中加入一个
<!-- The mappings for the JSP servlet -->
<servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspx</url-pattern>
<url-pattern>*.jspf</url-pattern>//添加该url-pattern,让jspf扩展名同样成为JSP Servlet处理的文件
</servlet-mapping>
如果使用resin服务器,则需要在resin中的resin.conf中<servlet-mapping url-pattern='*.jspf' servlet-name='jsp'/>
这样用jsp动态包含后jsp引擎才会把他当做jsp文件来编译。
但如果用静态包含(@include)则不用做如上配置可以编译,为什么静态包含文件则可以呢,具体原因可以参见jsp的动态包含和静态包含文件的区别: http://blog.csdn.net/itautomn/article/details/1635726
注意点:不建议无端引进jspf类型文件进来,因为编辑jspf类型文件上的java代码没有jsp打点提示,不方便维护,同时引入jspf类型文 件也没有什么好处反而增加了配置的复杂,当然引入jspf组件(记得有个jspf.jar)另议,因为此jspf非彼jspf。