Spring框架

时间:2016-03-13 04:23:48

标签: java eclipse maven spring-mvc spring-boot

基本上,访问“/”和“/ a”正在浏览器上运行。 Acess“/ testme”无效。错误是

  

2016-03-13 15:04:37.709错误1933 --- [io-8080-exec-57]   o.s.boot.context.web.ErrorPageFilter:转发到错误页面   来自请求[/ testmenull]由于异常[圆形视图路径   [testme.html]:将调度回当前处理程序URL   [/XXXX/testme.html]再次。检查您的ViewResolver设置! (提示:这个   由于默认视图名称,可能是未指定视图的结果   代。)]

我做一个字符串grep,但找不到“ViewResolver”。我不知道为什么“/”和“/ a”有效。有什么想法吗?

查看图片了解更多信息: enter image description here

所有xml文件: enter image description here

的pom.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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.xxxxx</groupId>
  <artifactId>Monitor</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <!--<name>Monitor</name>-->
  <url>http://maven.apache.org</url>

  <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.1.9.RELEASE</version>
  </parent>

  <dependencies>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <dependency>
          <groupId>javax.websocket</groupId>
          <artifactId>javax.websocket-api</artifactId>
          <version>1.1</version>
          <scope>provided</scope> <!--for web socket-->
      </dependency>
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
      </dependency>
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.31</version>
      </dependency>
      <dependency>
          <groupId>org.springframework.hateoas</groupId>
          <artifactId>spring-hateoas</artifactId>
      </dependency>
      <dependency>
          <groupId>com.google.code.gson</groupId>
          <artifactId>gson</artifactId>
          <version>2.3</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
      </dependency>
  </dependencies>

  <build>
      <finalName>Monitor</finalName>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.1</version>
              <configuration>
                  <compilerVersion>1.7</compilerVersion>
                  <source>1.7</source>
                  <target>1.7</target>
              </configuration>
          </plugin>
          <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
          </plugin>
          <!--<plugin>-->
              <!--<groupId>org.apache.maven.plugins</groupId>-->
              <!--<artifactId>maven-source-plugin</artifactId>-->
              <!--<executions>-->
                  <!--<execution>-->
                      <!--<id>attach-sources</id>-->
                      <!--<goals>-->
                          <!--<goal>jar</goal>-->
                      <!--</goals>-->
                  <!--</execution>-->
              <!--</executions>-->
          <!--</plugin>-->
      </plugins>
      <resources>
          <resource>
              <directory>${basedir}/src/main/resources</directory>
          </resource>
          <resource>
              <directory>${basedir}/src/main/java</directory>
          </resource>
      </resources>
  </build>
</project>

的web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>

6 个答案:

答案 0 :(得分:15)

@RequestMapping的值是&#34; testme&#34;而且回报的价值也是&#34; testme&#34;因此,当您访问&#34; / testme&#34;时,网络将重定向到&#34; / testme&#34;再次。这将导致无限重定向到&#34; / testme&#34;。

答案 1 :(得分:6)

如果您使用的是gradle,则必须添加: compile("org.springframework.boot:spring-boot-starter-thymeleaf"),或者maven找到这种依赖。

答案 2 :(得分:5)

尝试了以上所有建议,但这对我没有用。但是当我将控制器类的注释从@Controller更改为@RestController(@Controller和@ResponseBody的组合)时,问题得到了解决。

答案 3 :(得分:2)

如果您没有返回视图。但只有JSON,在响应中添加@ResponseBody有助于返回JSON值而不是视图。

例如: @RequestMapping(value="/getList",method = RequestMethod.GET) public @ResponseBody List<LOne> getLOne(){

答案 4 :(得分:0)

我认为如果所有HTML名称都正确,也许您需要在MvcConfig类中声明类似的内容:

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/home").setViewName("home");
        registry.addViewController("/usuario/perfil").setViewName("usuario/perfil");
        registry.addViewController("/").setViewName("home");
        registry.addViewController("/testme").setViewName("testme");
        registry.addViewController("/test").setViewName("test");
        registry.addViewController("/login").setViewName("login");
    }     
}

答案 5 :(得分:0)

此问题是由于pom.xml中提到的循环依赖性引起的。如果您使用的是spring-boot-starter-freemaker,请避免使用spring-boot-starter-web。 spring-boot-starter-web已经是spring-boot-starter-freemaker的一部分。