Web applications 瓷砖2韩元';从子文件夹内部调用时无法加载

Web applications 瓷砖2韩元';从子文件夹内部调用时无法加载,web-applications,servlets,spring-mvc,tiles2,Web Applications,Servlets,Spring Mvc,Tiles2,我的webapp有这些奇怪的问题。当我访问home.jsp或example.jsp时,平铺通常被加载,但当我想访问example2.jsp时,作为子文件夹内部,根本不调用布局 我的目录结构如下所示: webapp |___ pages |___ subfolder |___ example2.jsp |___ tiles |___ layouts

我的webapp有这些奇怪的问题。当我访问home.jspexample.jsp时,平铺通常被加载,但当我想访问example2.jsp时,作为子文件夹内部,根本不调用布局

我的目录结构如下所示:

webapp
  |___ pages
           |___ subfolder
                      |___ example2.jsp
           |___ tiles
                  |___ layouts
                         |___ base-layout.jsp
                  |___ header.jsp
                  |___ footer.jsp
           |___ example.jsp
           |___ home.jsp
  |___ resources
  |___ WEB-INF
           |___ servlet.xml
           |___ tiles-defs.xml
           |___ web.xml
  |___ index.jsp
<!-- JSP View Resolver -->  
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> -->
<property name="prefix" value="/pages/" />
<property name="suffix" value=".jsp" /> 
<property name="order" value="1" />
Myservlet.xml

<!-- JSP View Resolver -->  
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/pages/" />
    <property name="suffix" value=".jsp" /> 
    <property name="order" value="1" />
</bean>

<!-- Default Tiles View Resolver -->    
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" >
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/> 
    <property name="order" value="0" />
</bean> 

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" >
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles-defs.xml</value>
        </list>
    </property>
</bean>
<tiles-definitions>

  <definition name="base-layout" template="/pages/tiles/layouts/base-layout.jsp">
    <put-attribute name="header" value="/pages/tiles/header.jsp" />
    <put-attribute name="body" value="" />
    <put-attribute name="footer" value="/pages/tiles/footer.jsp" />
  </definition>

  <definition name="home" extends="base-layout">
    <put-attribute name="title" value="Title" /> 
    <put-attribute name="body" value="/pages/home.jsp" />
  </definition>

  <definition name="example1" extends="base-layout">
    <put-attribute name="title" value="Title" /> 
    <put-attribute name="body" value="/pages/example.jsp" />
  </definition>

  <definition name="example2" extends="base-layout">
    <put-attribute name="title" value="Title" /> 
    <put-attribute name="body" value="/pages/subfolder/example2.jsp" />
  </definition>

</tiles-definitions>
<servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

/WEB-INF/tiles-defs.xml
Mytiles defs.xml

<!-- JSP View Resolver -->  
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/pages/" />
    <property name="suffix" value=".jsp" /> 
    <property name="order" value="1" />
</bean>

<!-- Default Tiles View Resolver -->    
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" >
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/> 
    <property name="order" value="0" />
</bean> 

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" >
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles-defs.xml</value>
        </list>
    </property>
</bean>
<tiles-definitions>

  <definition name="base-layout" template="/pages/tiles/layouts/base-layout.jsp">
    <put-attribute name="header" value="/pages/tiles/header.jsp" />
    <put-attribute name="body" value="" />
    <put-attribute name="footer" value="/pages/tiles/footer.jsp" />
  </definition>

  <definition name="home" extends="base-layout">
    <put-attribute name="title" value="Title" /> 
    <put-attribute name="body" value="/pages/home.jsp" />
  </definition>

  <definition name="example1" extends="base-layout">
    <put-attribute name="title" value="Title" /> 
    <put-attribute name="body" value="/pages/example.jsp" />
  </definition>

  <definition name="example2" extends="base-layout">
    <put-attribute name="title" value="Title" /> 
    <put-attribute name="body" value="/pages/subfolder/example2.jsp" />
  </definition>

</tiles-definitions>
<servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

Myweb.xml

<!-- JSP View Resolver -->  
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/pages/" />
    <property name="suffix" value=".jsp" /> 
    <property name="order" value="1" />
</bean>

<!-- Default Tiles View Resolver -->    
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" >
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/> 
    <property name="order" value="0" />
</bean> 

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" >
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles-defs.xml</value>
        </list>
    </property>
</bean>
<tiles-definitions>

  <definition name="base-layout" template="/pages/tiles/layouts/base-layout.jsp">
    <put-attribute name="header" value="/pages/tiles/header.jsp" />
    <put-attribute name="body" value="" />
    <put-attribute name="footer" value="/pages/tiles/footer.jsp" />
  </definition>

  <definition name="home" extends="base-layout">
    <put-attribute name="title" value="Title" /> 
    <put-attribute name="body" value="/pages/home.jsp" />
  </definition>

  <definition name="example1" extends="base-layout">
    <put-attribute name="title" value="Title" /> 
    <put-attribute name="body" value="/pages/example.jsp" />
  </definition>

  <definition name="example2" extends="base-layout">
    <put-attribute name="title" value="Title" /> 
    <put-attribute name="body" value="/pages/subfolder/example2.jsp" />
  </definition>

</tiles-definitions>
<servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

myServlet
org.springframework.web.servlet.DispatcherServlet
1.
myServlet
*.html
当我访问home.jsp或example.jsp时,[snip],但当我想访问example2.jsp[snip]

每个请求使用的URL是什么


您的spring DispatcherServlet是针对匹配*.html URL的请求配置的。所有其他URL都不会初始化分幅。

最后,我通过注释InternalResourceViewResolver中的viewClass行实现了它

最终代码如下:

webapp
  |___ pages
           |___ subfolder
                      |___ example2.jsp
           |___ tiles
                  |___ layouts
                         |___ base-layout.jsp
                  |___ header.jsp
                  |___ footer.jsp
           |___ example.jsp
           |___ home.jsp
  |___ resources
  |___ WEB-INF
           |___ servlet.xml
           |___ tiles-defs.xml
           |___ web.xml
  |___ index.jsp
<!-- JSP View Resolver -->  
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> -->
<property name="prefix" value="/pages/" />
<property name="suffix" value=".jsp" /> 
<property name="order" value="1" />


谢谢您的回复。我通过注释JSP视图解析器的一行来解决这个问题。