我找到了下面的例子来帮助自己了解SpringBoot的一部分:found here
该示例运行时没有错误,但我无法理解为什么addAttribute不显示更改后的消息,而是只返回字符串形式的“message”。
UPDATE使用**@Controller注解导致项目无法执行,作为解决方案,它需要是@RestController**。我不确定这对一般问题是否有任何意义。
这是控制器代码:
package com.example.MySecondSpringBootProject.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HomeController {
@GetMapping("/")
public String hello(){
return "hello";
}
@GetMapping("/message")
public String message(Model model) {
model.addAttribute("message", "This is a custom message");
return "message";
}
}
这是消息html页面:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Spring Demo Project</title>
</head>
<body>
<h1 th:text="${message}"></h1>
</body>
</html>
下面是本地主机上“/message”的输出:
我看过addAttribute here的各种实现,它们都使用从前端传入的值来为上述属性赋值,这对这个端点是有意义的,但在本例中,前端从方法的第二个参数中提取传入它的值-至少它应该这样做。
我试过了,没有效果:
@RequestMapping("/message")
public String message(Model model, @RequestParam(value="message") String message) {
model.addAttribute("message", "This is a custom message");
return "message";
}
在方法中传递第二个参数也没有任何效果,它只是返回“message”字符串:
@GetMapping("/message")
public String message(Model model, String str) {
model.addAttribute("message", "This is a custom message");
return "message";
}
我将继续研究它,但我的头在这一点上进入圆圈,或者我只是不太理解关于模型.addAttribute概念的东西。
提前感谢!
2条答案
按热度按时间czfnxgou1#
请尝试以下解决方案:
对于视图:
我希望这对你有帮助
efzxgjgh2#
您正在返回字符串“message”,请尝试返回
return model.addAtribute("message","this is custom message");
。