我想在Spring项目中使用JSP文件的开发版本.有可能吗



在上一个问题中,强迫JBoss AS 7在Spring项目中使用源(开发(目录中的静态文件,我要求提供JS/CSS文件,经过4个小时的文档阅读和实验,我自己解决了这个问题。

但我不熟悉Spring/Servlet的内部结构,无法强制Spring使用本地文件系统路径(开发文件(中的JSP文件。我尝试:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="file:/home/user/devel/app/src/main/webapp/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
</bean>

但当我访问应用程序页面时,我会收到错误:

HTTP Status 404 - /app/file:/home/user/devel/app/src/main/webapp/WEB-INF/jsp/index.jsp

我认为它不知何故来自ServletContext.getRealPath…

我的目标是缩短编辑-部署测试周期。

请不要建议JRebelDCEVM或者其他解决方案。直接回答。。。

切换到Tomcat 7(从Jboss AS 7(后,我配置上下文/opt/apache-tomcat-7.0.40/conf/Catalina/localhost/CTXNAME.xml:

<Context docBase="/home/user/devel/proj-dev/src/main/webapp"
         reloadable="true">
    <Resources className="org.apache.naming.resources.VirtualDirContext"
               extraResourcePaths="/WEB-INF/classes=/home/user/devel/proj-dev/target/classes,/WEB-INF/lib=/home/user/devel/proj-dev/target/proj/WEB-INF/lib"/>
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
            virtualClasspath="/home/user/devel/proj-dev/target/classes;/home/user/devel/proj-dev/target/proj/WEB-INF/lib"/>
    <JarScanner scanAllDirectories="true"/>
</Context>

根据:

  • http://tomcat.apache.org/tomcat-7.0-doc/config/context.html
  • http://tomcat.apache.org/tomcat-7.0-doc/config/resources.html
  • http://tomcat.apache.org/tomcat-7.0-doc/config/loader.html

现在浏览器中的JS/CSS/JSP文件通过F5进行更新。为了使用新的.class,请调用mvn compile

要引导,请调用mvn package。上下文名称来自.xml文件名。

<bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
              <property name="prefix"> 
                    <value>/WEB-INF/jsp/</value>
              </property>
              <property name="suffix">
                 <value>.jsp</value>
              </property>
</bean>

在前缀中,您必须只给出以/WEB-INF/

开头的相对路径

最新更新