Spring Boot - Tiles问题

时间:2015-10-27 08:04:09

标签: java xml spring

我第一次使用 IHtmlContent html = HtmlHelperInputExtensions.TextBoxFor(htmlHelper, expression); return html; tiles。使用下面的配置我得到:

  

Whitelabel错误页面此应用程序没有/ error的显式映射,因此您将此视为后备。

的pom.xml

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.google.android.gms:play-services:4.2.42'
}

调度-servlet.xml中

Spring Boot

的web.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>org.qnev.controller</groupId>
      <artifactId>store-items</artifactId>
      <version>0.0.1-SNAPSHOT</version>

      <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.2.7.RELEASE</version>
      </parent>
      <dependencies>
            <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-web</artifactId>
            </dependency>


            <dependency>
                  <groupId>org.apache.tomcat.embed</groupId>
                  <artifactId>tomcat-embed-jasper</artifactId>
                  <scope>provided</scope>
            </dependency>

            <dependency>
                  <groupId>javax.servlet</groupId>
                  <artifactId>jstl</artifactId>
                  <scope>provided</scope>
            </dependency>

      <!-- Tiles -->
       <dependency>
           <groupId>org.apache.tiles</groupId>
           <artifactId>tiles-api</artifactId>
           <version>2.1.2</version>
       </dependency>
       <dependency>
           <groupId>org.apache.tiles</groupId>
           <artifactId>tiles-core</artifactId>
           <version>2.1.2</version>
       </dependency>
       <dependency>
           <groupId>org.apache.tiles</groupId>
           <artifactId>tiles-jsp</artifactId>
           <version>2.1.2</version>
       </dependency>
       <dependency>
           <groupId>org.apache.tiles</groupId>
           <artifactId>tiles-servlet</artifactId>
           <version>2.1.2</version>
       </dependency>


      </dependencies>
</project>

general.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">

      <context:component-scan base-package="org.test.controller"></context:component-scan>

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

      <bean id="viewResolver"
            class="org.springframework.web.servlet.view.UrlBasedViewResolver">
            <property name="viewClass"
                  value="org.springframework.web.servlet.view.tiles3.TilesView" />
      </bean>
</beans>

控制器:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns="http://java.sun.com/xml/ns/javaee"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0">
      <display-name>store-items</display-name>
      <welcome-file-list>
            <welcome-file>index.html</welcome-file>
            <welcome-file>index.htm</welcome-file>
            <welcome-file>index.jsp</welcome-file>
            <welcome-file>default.html</welcome-file>
            <welcome-file>default.htm</welcome-file>
            <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>

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

      <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>*.html</url-pattern>
            <url-pattern>*.htm</url-pattern>
            <url-pattern>*.json</url-pattern>
            <url-pattern>*.xml</url-pattern>
      </servlet-mapping>
</web-app>

enter image description here

2 个答案:

答案 0 :(得分:0)

您是否尝试将包装类型更改为WAR?使用JSP与Spring启动时存在一些限制。

你可以试试这个,接着是一个干净的MVN安装:

<artifactId>store-items</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

More info

答案 1 :(得分:0)

该消息只是说您RequestMapping没有/error,因此它正在使用默认的回退页面,该页面会打印出错误并执行其他一些操作。如果您想避免错误消息,您只需要确保您已为/error注册了一个控制器端点,例如:

@RequestMapping("/error")
public String handleError(...) { ... ; return "ded"; }

这应该足以摆脱这个消息。我不相信拥有error.jsp文件就足够了,因为从技术上来说这不是一个映射,但我并不是100%肯定。

请参阅:This application has no explicit mapping for /error