Java Thymeleaf:在隐藏输入字段中传递数据

Java Thymeleaf:在隐藏输入字段中传递数据,java,html,spring-boot,thymeleaf,Java,Html,Spring Boot,Thymeleaf,我正在尝试创建一个提交按钮,该按钮通过@modeldattribute传递数据。但是,@PostController中的postDTO字段值保持不变 迈克,非常感谢和亲切的问候 控制器@GetMapping @GetMapping("/post") public String post(Model model) { List<Post> posts = postRepository.findAllByOrderByPostedAtDesc(); mo

我正在尝试创建一个提交按钮,该按钮通过
@modeldattribute
传递数据。但是,
@PostController
中的
postDTO
字段值保持不变

迈克,非常感谢和亲切的问候

控制器@GetMapping

    @GetMapping("/post")
    public String post(Model model) {

    List<Post> posts = postRepository.findAllByOrderByPostedAtDesc();
    model.addAttribute("postDTO", new PostDTO("", ""));
    model.addAttribute("posts", posts);
    return "post";
}
@PostMapping("/postEdit")
public String editPost(@ModelAttribute("postDTO") PostDTO postDTO, @ModelAttribute("sessionUser") User sessionUser) {
    if (sessionUser.getAdmin()) {
        Optional<Post> post = postRepository.findById(postDTO.getId());
        if (post.isPresent()) {
            redirectAttributes.addAttribute("postId", post.get());
            return "redirect:/postEdit/";
        }
    }
    return "redirect:/post";
}
是通过Thymeleaf设置隐藏心房的最简单方法

下面是一个工作示例:


<html>
 ...
 ...
<body>
    <span hidden id="myData"></span>
    ...
    ...
    <script th:inline="javascript">

        var myData = [[${modelAttributeValue}]];

        document.getElementById("myData").textContent = myData; 

    </script>

...
...
...
...
var myData=[${modelAttributeValue}]];
document.getElementById(“myData”).textContent=myData;
以上示例的工作原理如下:


<html>
 ...
 ...
<body>
    <span hidden id="myData"></span>
    ...
    ...
    <script th:inline="javascript">

        var myData = [[${modelAttributeValue}]];

        document.getElementById("myData").textContent = myData; 

    </script>
  • id为“myData”的隐藏span元素定义在脚本标记上方。 这将创建空跨度,并使其随时可供脚本使用

  • 脚本的th:inline属性将使Thymeleaf解释它。 Thymeleaf将变量“myData”的值设置为Java服务提供的模型属性值

  • id为“myData”的span的文本内容将通过变量设置为Java服务提供的值

  • 更多信息:

    
    <html>
     ...
     ...
    <body>
        <span hidden id="myData"></span>
        ...
        ...
        <script th:inline="javascript">
    
            var myData = [[${modelAttributeValue}]];
    
            document.getElementById("myData").textContent = myData; 
    
        </script>
    

    是通过Thymeleaf设置隐藏心房的最简单方法

    下面是一个工作示例:

    
    <html>
     ...
     ...
    <body>
        <span hidden id="myData"></span>
        ...
        ...
        <script th:inline="javascript">
    
            var myData = [[${modelAttributeValue}]];
    
            document.getElementById("myData").textContent = myData; 
    
        </script>
    
    
    ...
    ...
    ...
    ...
    var myData=[${modelAttributeValue}]];
    document.getElementById(“myData”).textContent=myData;
    
    以上示例的工作原理如下:

    
    <html>
     ...
     ...
    <body>
        <span hidden id="myData"></span>
        ...
        ...
        <script th:inline="javascript">
    
            var myData = [[${modelAttributeValue}]];
    
            document.getElementById("myData").textContent = myData; 
    
        </script>
    
  • id为“myData”的隐藏span元素定义在脚本标记上方。 这将创建空跨度,并使其随时可供脚本使用

  • 脚本的th:inline属性将使Thymeleaf解释它。 Thymeleaf将变量“myData”的值设置为Java服务提供的模型属性值

  • id为“myData”的span的文本内容将通过变量设置为Java服务提供的值

  • 更多信息:

    
    <html>
     ...
     ...
    <body>
        <span hidden id="myData"></span>
        ...
        ...
        <script th:inline="javascript">
    
            var myData = [[${modelAttributeValue}]];
    
            document.getElementById("myData").textContent = myData; 
    
        </script>