当前位置: 首页 > 知识库问答 >
问题:

使用@PathVariable的简单spring启动应用程序的“循环视图路径”

彭允晨
2023-03-14

我有一个简单的Spring Boot应用程序,可以提供静态内容。我有一个索引。html页面和/src/main/resources/public中的一些js/css。我有一个简单的控制器,如下所示:

@Controller
public class PublicController {
    @RequestMapping(value="/", method=RequestMethod.GET)
    public String index() {
        return "index";
    }
}

这是意料之中的事。我运行curlhttp://localhost:8080/,它提供了我的html。

现在,我想修改控制器以获取路径变量:

// ...
@RequestMapping(value="/{word}", method=RequestMapping.GET)
public String index(@PathVariable("word") String word) {
    return "index";
}

但是现在我得到了一个500,有一个很长的“圆形视图路径”例外。

我假设现在的情况是视图解析器看到我的控制器可以处理“/索引”,并意识到这不会有好的结果。

是否可以告诉视图解析器赋予静态资源优先级?

共有1个答案

元望
2023-03-14

当您使用Thymeleaf并声明一个thymeleafviewsolver和一个带有特定前缀和后缀的ServletContextTemplateResolver时,它以不同的方式构建视图,给它一个类似

WEB-INF/static/index.html

ServletContextResourceResolver

templateInputStream = resourceResolver.getResourceAsStream(templateProcessingParameters, resourceName);

最终

return servletContext.getResourceAsStream(resourceName);

这将获取一个相对于ServletContext路径的资源。然后,它可以使用TemplateEngine来生成超文本标记语言。这里不可能发生无尽的循环。

 类似资料:
  • 我必须写一个使用循环的程序,计算a和b之间所有奇数的和(包括),其中a和b是输入。 我做了这个(如下),它工作得很好,但我注意到它有一个问题:当我输入一个较大的数字,然后输入一个较小的数字时,它返回0,但当我首先输入一个较小的数字时,它工作得很好。有什么快速的解决办法吗?:)

  • 我试图用Spring和Thymeleaf显示一个超文本标记语言文件,但是当我从浏览器点击控制器时,我得到如下所示的错误: 下面是我的控制器代码。。 这是我的application.properties文件: 这是我的pom.xml文件: 以下是主要的Spring Boot类: 我试图显示的文件是一个helloworld.html文件,这是路径src/main/资源/模板/helloworld.ht

  • 我需要侦听多个队列(存在于同一队列管理器中)。我有用于侦听单个队列的可用Spring Boot应用程序代码。但是,有没有任何方法可以从单个Spring Boot应用程序连接到多个队列? 还有,是否可以在运行时将侦听器从一个队列切换到另一个队列? 我有从单个队列读取的代码,如下所示:

  • 我试图从spring主页模拟RESTful Web服务”https://spring.io/guides/gs/rest-service/". Gradle编译工作正常,但是当我运行Spring Boot时,我得到了下面的错误,我不知道是什么原因。我是Spring新手,有人能帮我吗? 我的配置详细信息包括: Windows 7 Intellij Idea 13.1.3 Java-8 Gradle-

  • 因此,我完成了以下步骤: > 然后提示我输入密码和其他各种信息。我像这样完成了: 在应用程序中添加了以下行。yml文件来自src/main/resources: 已启动Spring Boot应用程序。出现此异常: 其主要思想是PKCS12提供程序不存在。 有什么想法吗? 也许使用不同的提供商?如果答案是肯定的,我应该使用哪个提供商?

  • ServletException:循环视图路径[home]:将再次分派回当前处理程序URL[/home]。检查您的视图解析器设置!(提示:这可能是由于默认视图名称生成而导致的未指定视图的结果。)在org.springframework.web.servlet.view.internalResourceView.prepareforrendering(internalResourceView.jav