Ticket #143 (closed Bug: fixed)

Opened 12 years ago

Last modified 12 years ago

关于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。

Change History

comment:1 Changed 12 years ago by yuanhuoqing

  • Status changed from new to closed
  • Component changed from Snake to 产品库
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.