Spring Boot 4 不渲染 JSP 抛出 404

2024-01-05

我有以下项目结构

-src
  -main
    -java
      -com
        -test
          Application.java
          -controllers
            MyController.java
    -webapp
      -WEB-INF
        -jsp
          main.jsp

我想做类似的事情this https://github.com/spring-projects/spring-boot/blob/master/spring-boot-samples/spring-boot-sample-web-jsp但我的控制器中有以下内容

@Controller
@RequestMapping("/my/**")
public class MyController {
    @RequestMapping("/home")
    public String loadHomePage(Model m) {
        m.addAttribute("name", "CodeTutr");
        System.out.println("Test the view controller");
        return "main";
    }
}

当我去http://localhost:8080/my/home我收到日志消息和 404。我认为在 spring 4 中我不需要视图解析器,但如果需要,我该如何配置它。

Update

我使用以下内容创建了 application.properties...

spring.view.prefix: /WEB-INF/jsp/
spring.view.suffix: .jsp
application.message: Hello Phil

但它仍然不起作用。

Update 2

提供的 Spring 示例似乎也以同样的方式失败,以下 build.gradle...

buildscript {
  repositories {
    mavenLocal()
    mavenCentral()
    maven { url "http://repo.spring.io/snapshot" }
    maven { url "http://repo.spring.io/milestone" }
  }
  dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.1.4.BUILD-SNAPSHOT")
  }
}
apply plugin: 'war'
apply plugin: 'spring-boot'
apply plugin: 'groovy'
war { baseName='itext' }
repositories {
  mavenLocal()
  mavenCentral()
  maven { url "http://repo.spring.io/snapshot" }
  maven { url "http://repo.spring.io/milestone" }
  maven { url "http://repo.spring.io/libs-release" }
}
dependencies {
  compile("org.springframework.boot:spring-boot-starter-web")
  compile("org.springframework.boot:spring-boot-starter-websocket")
  compile("org.springframework:spring-messaging")
  providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
  testCompile("org.springframework.boot:spring-boot-starter-test")
  compile 'org.codehaus.groovy:groovy-all:2.2.0'
  compile 'com.lowagie:itext:4.2.1'
  compile 'com.google.code.gson:gson:2.2.4'
}

Update

我也尝试过明确表达...

@Bean
public ViewResolver getViewResolver(){
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("/WEB-INF/jsp/");
    resolver.setSuffix(".jsp");
    return resolver;
}

这似乎也不起作用。


将其添加到 build.gradle 似乎可以解决问题...

compile 'com.google.code.gson:gson:2.2.4'
compile 'javax.servlet.jsp.jstl:jstl:1.2',
      'taglibs:standard:1.1.2'
providedRuntime 'org.apache.tomcat.embed:tomcat-embed-jasper:8.0.8'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot 4 不渲染 JSP 抛出 404 的相关文章

随机推荐

  • Draw.io:如何调试未压缩的 js 代码?

    我从github存储库下载了draw io源文件 并尝试对导入函数进行一些细微的更改 但所有源都被缩小了 尤其是app min js 所以我的问题是 有什么方法可以使用未缩小的源代码来调试代码吗 我还尝试在查询字符串中传递参数 dev 1
  • Django:尝试编写只读数据库

    我刚刚创建了一个 Django 项目 python manage py startapp smartrecruitment 然后我运行了数据库同步 python manage py syncdb Operations to perform
  • 在Javascript中将字符串转换为日期时间格式

    我有一个字符串 我想与 JavaScript 日期时间对象进行比较 如何使用 JavaScript 将字符串 1 1 1912 转换为日期时间 以便我可以进行比较 if EDateTime gt 1 1 1912 如果您可以保证日期格式 您
  • 如何清除 html 5 客户端存储?

    例如 我认为 StackOverflow 通过 html 5 客户端存储来记住用户 我怎样才能清除这个存储 清除缓存好像不行 删除 flash cookie 似乎也没有帮助 附注我正在使用 Safari 但我也对一般内容感兴趣 StackO
  • 通过管道传输的 Thrift IPC (Windows)

    我一直在关注 Thrift 对 Windows 的支持 并且由于许多贡献者的努力 VS 开发已经取得了长足的进步 有针对编译器和 C 库的 VS 2010 项目 我已经确认它们在 0 8 中运行良好 http thrift apache o
  • Opencv 和 AWS Lambda

    我正在用 Java 编写一个 lambda 函数 想要使用 opencv 库 我很难理解如何设置它 请帮忙 我可以在本地很好地设置它 但我对 lambda 部分真的很困惑 编辑 准确地说 我在使用 System LoadLibrary 函数
  • 将使用-v7.3(HDF5)保存的Matlab稀疏矩阵加载到Python中并对其进行操作

    我是 python 新手 来自 matlab 我有一个以 matlab v7 3 HDF5 格式保存的大型稀疏矩阵 到目前为止 我发现了两种加载文件的方法 使用h5py and tables 然而 在这两种方法之后 在矩阵上的操作似乎都非常
  • AWS Cognito 的 SMS 多因素身份验证返回无效代码或身份验证状态

    我正在尝试实现基于以下内容的身份验证Cognito使用他们的GoSDK 我已经能够获得基本的username password身份验证可以工作 但是当我使用添加两因素身份验证时SMS我被卡住了 重现步骤 我使用用户名 密码和电子邮件验证创建
  • bash:cd:参数太多[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如果我需要转到名为 异常处理 的目录 那么我写 cd异常处理 但它给出错误太多参数 使用引号 cd new folder 或逃离空间 cd
  • 未为类“BasicMessageChannel”定义方法“setMockMessageHandler”

    运行Flutter项目后 出现此错误 我能做什么来解决它 Error The method setMockMessageHandler isn t defined for the class BasicMessageChannel
  • xsl:使用多个元素对 XML 文件进行排序

    我正在尝试对 XML 文件中的一堆记录进行排序 诀窍是我需要对不同的节点使用不同的元素进行排序 举一个最简单的例子 我想这样做 给定一个 xml 文件
  • JSON 打印从根到叶的所有路径

    name Basic id home childrens name Dashboard viewtype custom view dashboard html childrens name DeviceInfo
  • 根据 Woocommerce 中的产品数量替换特定的购物车商品

    我正在尝试根据购物车中产品的数量更改购物车内容 我店里只有 5 种产品 产品 1 gt 1 个面板 Product 2 gt 12 个面板 Product 3 gt 18 个面板 Product 4 gt 30 个面板 Product 5
  • DAX 条件运行总计

    我有一个包含 2 列的表 ID and Numbers 我想创建一个新专栏Result与数字列的运行总计 但每次运行总计超过 20 时 应重新启动运行总计 此外 如果运行总计低于 20 则不应显示结果 这必须仅使用 DAX 来完成 谢谢指教
  • 为什么 Chrome 会向我的网站发送大量 GET 请求?

    我的 IIS 托管网站定期出现问题 其中一个客户端浏览器 Google Chrome 77 78 或更高版本 突然开始每秒向我的网站提交数十个针对同一页面的请求 对于我的应用程序 该用户始终是有效的 经过身份验证的用户 这些请求似乎也不遵循
  • 在 Rails 6 中测试 jquery

    我对编程和测试相当陌生 看看 jquery 是否适用于我的 Rails 6 设置 为了做到这一点 我有 创建了一个新的 Rails 应用程序 生成了一个脚手架 将以下代码插入到新创建的脚手架的index html erb视图中 div st
  • 如何使用 Mojolicious 上传多个文件?

    我是 Mojolicious 的新手 正在尝试学习它 我正在尝试使用表单上传多个文件 但一次仅上传一个文件 有什么建议吗 perl w use Mojolicious Lite use Mojo Upload use v5 14 get g
  • 如何显示使用“withdraw”方法隐藏的窗口?

    我想在打电话后显示一个窗口withdraw 以下是我当前的代码 from Tkinter import def callback global root root withdraw win2 Tk root Tk Label root te
  • 在画布中绘制矩形区域的弹出工具提示

    我有一个在 HTML5 中使用 JavaScript 填充的矩形区域 并且我需要添加一个工具提示弹出窗口 以便当用户在手持设备上触摸 单击它或在浏览器中将鼠标悬停在它上面时显示文本 我已经查看了 StackOverflow 上已有的示例 但
  • Spring Boot 4 不渲染 JSP 抛出 404

    我有以下项目结构 src main java com test Application java controllers MyController java webapp WEB INF jsp main jsp 我想做类似的事情this