当前位置: 首页 > 知识库问答 >
问题:

每个循环都有错误

司马弘益
2023-03-14

我试图在网页上打印错误loginform.html但th: each="e:${#fields.errors('email')}"th: text="${e}"

这是我的loginform.html代码

<!doctype html>
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
<head>
    <meta charset="UTF-8" />
    <title>Log In</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
     
</head>
<body>

    <form th:action="@{/process}" method="post" th:object="${User}">
 
  <div class="form-group">
    <label for="username2">User name</label>
    <input type="text" class="form-control" id="username2" placeholder="username" name="username"/>
    <!-- <div  th:each="e : ${#fields.errors('username')}" th:text="${e}"  class="invalid-feedback">
          
        </div> -->   
  </div>
  <div class="form-group">
    <label for="exampleInputEmail1">Email address</label>
    <input type="email" class="form-control" name="email" aria-describedby="emailHelp" placeholder="Enter email">
    <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
      <p  th:each="e:${#fields.errors('email')}" th:text="${e}"></p>
  </div>
  
  <div class="form-group form-check">
    <input type="checkbox" class="form-check-input"  name="agreed">
    <label class="form-check-label" for="exampleCheck1">Check me out</label>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
</form>
    
</body>
</html>

控制器代码:

package com.validation.controller;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.validation.BindingResult;
import com.validation.entities.User;

@Controller
public class FormController {
    
    @GetMapping("/form")
    public String form()
    {
        
            
            return "loginform";
        
    }
    
    
    @PostMapping("/process")
    public String process(@Valid @ModelAttribute("User") User user,BindingResult result )
    {
    
        if(result.hasErrors())
        {
            System.out.println(result);
            
            return "loginform";
        }
        
        return "success";
    }
    

}

使用者java代码:

package com.validation.entities;

import java.util.List;

import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

public class User {
    
    @NotBlank(message="User name can't be blank")
    @Size( min=3,max=12 ,message="User name must be between 3-12 chars.")
    private String username;
    
    @Email(regexp="^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$", message="invalid email")
    private String email;
    
    @AssertTrue
    private boolean agreed;
    
    //public List<Integer> list= List.of(1,2,3,4,5);
    
    public boolean isAgreed() {
        return agreed;
    }
    public void setAgreed(boolean agreed) {
        this.agreed = agreed;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getEmail() {
        return email;
    }
    @Override
    public String toString() {
        return "User [username=" + username + ", email=" + email + "]";
    }
    public void setEmail(String email) {
        this.email = email;
    }

}

错误是:此应用程序没有/Error的显式映射的白标签错误页,所以您将其视为一种回退。

共有1个答案

车靖琪
2023-03-14

您的get方法不完整。您正在通过th: ject=${user}定义的对象不存在于模型属性映射中。

在这种情况下,错误是明确的:

java。lang.IllegalStateException:BindingResult和bean名称“User”的普通目标对象都不能作为组织的请求属性使用。springframework。网状物servlet。支持绑定状态。(BindStatus.java:153)

修改get映射:

@GetMapping("/form")
public ModelAndView form(ModelAndView modelAndView) {
  User user = new User(); // or however you want to fetch the user entity / dto
  modelAndView.addObject("user", user);
  modelAndView.setViewName("loginform");

  return modelAndView;
}
 类似资料:
  • 下面AtomicBigInteger实现的方法是原子操作吗?我特别想知道部分。JVM是否以某种方式保证for循环中的每个循环都是原子式执行的? 我从这里得到了这段代码:是否可以以线程安全的方式安全地递增BigInteger,也许可以使用AtomicReference,W/O锁定?然而,这个实现正在进行中,您可以在Internet上的许多不同地方找到它。

  • 问题内容: 我正在尝试将此for循环重写为for每个循环。 这就是我尝试过的 谁能指出我正确的方向?谢谢。 问题答案: 我认为您想得太多… :)

  • 我已经创建了一个网站与德鲁帕尔6.34。 当我浏览到我的drupal 6.34网站时,我在页面顶部收到以下错误。我已经搜索了drupal,但无法弄清楚它的设置在哪里。我想知道我是否应该更改错误框架中提到的代码?它是什么以及如何在 Drupal 6.34 中打开它。 严格警告:views_handler_field::query() 的声明应与 /home/b15040be/public_html/

  • 我需要12次外循环,每个外循环1次内循环 例如: 等 但现在我的内循环在第一次迭代的外循环上运行。 请帮助我如何使用for循环执行此操作。

  • 考虑这个简单的C++函数来计算数组的前缀和: 它是4个融合的UOP1,这个CPU可以支持4个融合的OPs/周期。 有通过和携带的依赖链,每个都是一个循环,但是这些UOP可以到4个ALU端口中的任何一个,所以似乎不太可能冲突。融合的需要转到p6,这是一个更令人担忧的问题,但我只测量到p6的1.1 UOPS/迭代。这将解释每次迭代1.1个循环,但不是1.4个循环。如果我将循环展开2倍,端口压力会低得多

  • 问题内容: 我想为每个循环做一个,但要使其同步运行。循环的每次迭代都将执行http.get调用,并返回json以将值插入数据库中。问题是for循环异步运行,这导致所有http.gets一次全部运行,并且我的数据库最终没有插入所有数据。我正在使用async- foreach尝试执行我想要的操作它可以做到,但是如果我能以正确的方式做到这一点,我就不必使用它。 和我的模特 问题答案: 我发现在完成每个调