Ticket #143 (closed Bug: fixed)
关于jspf文件的使用问题
| Reported by: | yuanhuoqing | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | 产品库 | Version: | 产品库3.0 |
| Keywords: | jspf | Cc: | |
| Due Date: | 21/03/2014 |
Description
问题:产品库wap简版页面修改计数器代码加了个公共的jspf页面,具体代码是:<jsp:include page="xx.jspf" flush="true">
<jsp:param name="counterId" value="${counterId}"/>
</jsp:include>
用jsp动态包含这个jspf文件后页面显示的内容是没有编译直接把源码包含进来了。
问题分析:
jspf并不是像jsp一样是JSP Servlet的默认的扩展名(Tomcat 5.0.28/Servlet 2.4/JSP 2.0),用jsp动态包含后jsp引擎不会把他当做jsp文件来编译,如果使用tomcat,需求在tomcat下的web.xml中加入一个
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jspf</url-pattern>
</servlet-mapping>
让jspf扩展名同样成为JSP Servlet处理的文件。
如果使用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。
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)