Java 为什么程序显示空结果?
我创建数据字段名Java 为什么程序显示空结果?,java,spring-boot,thymeleaf,Java,Spring Boot,Thymeleaf,我创建数据字段名“csPreRequest”,并将其作为模型属性添加到html表单中,如下所示 @GetMapping("/add") public String addNewCourse(Model model) { String csPreRequest = ""; model.addAttribute("csPreRequest",csPreRequest); return "admin/add-course-module"; } 我需要做的是用我的自定义数
“csPreRequest”
,并将其作为模型属性添加到html表单中,如下所示
@GetMapping("/add")
public String addNewCourse(Model model) {
String csPreRequest = "";
model.addAttribute("csPreRequest",csPreRequest);
return "admin/add-course-module";
}
我需要做的是用我的自定义数据填充此字段并返回控制器类。我尝试如下:
@PostMapping("/save")
public String addNewCourse(@ModelAttribute("csPreRequest") String course) {
System.out.println("\n Pre Reqest Courses : "+course+"\n\n");
return "redirect:/courses/add";
}
我的html代码如下所示:
<input type="text" id="csPreRequest" th:field="${csPreRequest}">
我的程序运行良好,但没有打印结果。这里出了什么问题?在GetMapping中,您正在使用变量
csPreRequest
设置model属性,您将该变量初始化为一个空字符串,并且将呈现一个空字符串
你应该做的是:
1.调用POST/save
时,应保留传递的值。
2.调用
GET/add
时,它应检索模型中保留和设置的值。返回控制器时,您应尝试@RequestParam
:
@PostMapping("/save")
public String addNewCourse( @RequestParam("csPreRequest") String course ) {
System.out.println("\n Pre Reqest Courses : "+course+"\n\n");
return "redirect:/courses/add";
}
您是如何运行代码的?您知道控制台应该在哪里打印代码吗?请为csPreRequest和check提供一个值。由于您提供的是一个空字符串,这就导致了问题。我要问的是,我需要从forntend分配值,并将该值获取给控制器。我的问题是分配值在Controlleries中丢失,因为您有两个不同的端点,每个端点都有自己的作用域,在post请求中设置的任何内容在到达控制器方法的末尾时都会消失,除非您将其持久化