gpt4 book ai didi

java - Spring boot ModelAndView值不显示

转载 作者:行者123 更新时间:2023-12-01 11:17:04 24 4
gpt4 key购买 nike

我无法在 jsp 中显示添加到模型中的值。我已经尝试了一切,并检查了 stackoverflow 上的所有答案,但没有任何帮助。

为了节省您的时间,我粘贴部分代码:

我的pom.xml:

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

<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>
</dependency>

我的java配置代码是:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}

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

我的 Controller 是:

@Controller
@RequestMapping(value = "workorder")
public class WorkOrderController {

@RequestMapping(value = "/toProviewPage", method = RequestMethod.GET)
public ModelAndView toPreview(){
WorkOrderVo workOrderVo = new WorkOrderVo();
workOrderVo.setId(1);
workOrderVo.setName("xxx");
workOrderVo.setPriority(1);
workOrderVo.setDetail("xxxx");
return new ModelAndView("workOrderPreview", "workOrderVo", workOrderVo);
}
}

我的jsp文件是:

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en">

<div class="form-group">
<label for="detail" class="col-sm-2 control-label">Detail</label>
<div class="col-sm-10">
<textarea class="form-control" rows="5" id="detail" name="detail" value="${workOrderVo.dreadonly="true"></textarea>
</div>
</div>

但是spring boot不支持将其作为jsp文件,而显示所有html代码的是浏览器。

哪里写错了?

最佳答案

当您使用“嵌入式 Tomcat”时,无法直接运行应用程序的 main() 方法。如果您查看 POM,则表明提供了 Jasper 依赖项,这意味着它希望将您的工件放入 Tomcat 容器中。在应用程序中运行 main() 方法实际上不会加载 Jasper,这就是为什么您没有看到作为 JSP 处理的页面。对于 IntelliJ,您需要设置 Maven 运行配置(不是应用程序)并使用 spring-boot:run ,这显然会为您设置 Tomcat。这是如何设置它的图片。 Maven Run Setup
我对您的应用程序执行了此操作,看来 JSP 正在处理中。我没有在 GitHub 中看到您在上面引用的确切代码,但我注意到预览页面有一个已处理的 JSP 标记。它没有任何值(value),但标签被替换了。我不清楚这是否已记录,因此我从 this question 得到了提示。如果有人找到了明确说明的官方 Spring Boot 文档,请告诉我,我会更新它。

关于java - Spring boot ModelAndView值不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31695632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com