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

验证Thymeleaf输入

全流觞
2023-03-14
Masa: <input type="number"  class="form-control form-text"   name="masa"/>
    <div class="text col-sm-12 error" th:if="${wzrost}" >
        <p class="text text-center">
            To pole jest wymagane
        </p>
    </div>
    Wzrost: <input type="number" class="form-control form-text "   name="wzrost"/>
    <div class="text col-sm-12 error" th:if="${wzrost}" >
        <p class="text text-center">
            To pole jest wymagane
        </p>
    </div>
String x = String.valueOf(masa);
        String y = String.valueOf(wzrost);


        if(x==null ){
        model.addAttribute("wzrost",true);
        return"views/success";
    }
        if(y==null ){
            model.addAttribute("wzrost",true);
            return"views/success";
        }

如何验证输入,以便当输入为空时弹出消息

共有1个答案

孙岳
2023-03-14

您似乎希望实现服务器端验证。为此,最好的方法是使用验证器及其绑定结果。实现服务器端验证的步骤如下

>

  • have for model

    public class PersonForm {
      private String name;
    
     public String getName() {
        return this.name;
    }
    
     public void setName(String name) {
        this.name = name;
    }
    }
    

    html中使用表单模型

    <form action="#" th:action="@{/personForm}" th:object="${personForm}" method="post">
    <table>
        <tr>
            <td><label th:text="#{label.name}+' :'"></label></td>
            <td><input type="text" th:field="*{name}" /></td>
            <td th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Generic Error</td>
        </tr>
        <tr>
            <td><button type="submit">Submit</button></td>
        </tr>
    </table>
    </form>
    
    public class PersonFormValidator implements Validator {
    @Override
    public boolean supports(Class<?> clazz) {
        return PersonForm.class.equals(clazz);
    }
    
    @Override
    public void validate(Object target, Errors errors) {
        ValidationUtils.rejectIfEmpty(errors, "name", "field.name.empty");
        PersonForm p = (PersonForm) target;
    
        if (p.getName().equalsIgnoreCase("XXX")) {
            errors.rejectValue("name", "Name cannot be XXX");
        }
    }}
    
    public class WebController {
    @Autowired
    PersonFormValidator personFormValidator;
    
    
    @InitBinder("personForm")
    protected void initPersonFormBinder(WebDataBinder binder) {
    binder.addValidators(personFormValidator);
    }
    
    @PostMapping("/personForm")
    public String checkPersonInfo(@Validated PersonForm personForm, BindingResult bindingResult, final RedirectAttributes redirectAttributes) {
    if (bindingResult.hasErrors()) {
        return "personForm";
    }
    redirectAttributes.addFlashAttribute("personResult",  apiClientService.getPersonResult(personForm));
    return "redirect:/spouseForm";
    }
    }
    

  •  类似资料:
    • 我刚接触spring,我使用《spring in action 5》一书对其进行了探索。我对我的网站做了类似的操作,我已经为页面编写了2个控制器和2个html文件。第一页是比萨饼制作表单。第二个是订单提交。我的控制器代码实际上与书中的相同。在我开始验证表单输入之前,一切都很顺利。我做了比萨饼、订购课程和控制器所需的一切。 订单类: 比萨饼类: 披萨制作控制器: 表单提交控制器: 问题在于验证比萨饼

    • 我试着从一个实体类中验证两个字段,它有两个字段:name和price,但字符串和我都试着从每个@notblank打印消息(消息=“...”)输入字段下的表单。但我有以下错误: 对象“food DTO”中字段“name”上的字段错误:拒绝值[];代码[notblank.fooddto.name,notblank.name,notblank.java.lang.String,notblank];参数[

    • 根据经验,您永远不应该信任从最终用户收到的数据, 并且应该在充分利用之前对其进行验证。 要给 model 填充其所需的用户输入数据,你可以调用 yii\base\Model::validate() 方法验证它们。该方法会返回一个布尔值,指明是否通过验证。若没有通过,你能通过 yii\base\Model::$errors 属性获取相应的报错信息。比如, $model = new \app\mode

    • 我在验证表单时遇到了Thymeleaf问题。我正在尝试创建简单的用户注册表单来学习Spring,不幸的是我被卡住了。 这是我的UserForm类 第一个问题是在initBinder中添加自定义验证器类时 @Not空验证注释的“默认”停止工作。这是预期行为吗? 第二个问题是如何在thymeleaf中显示全局拒绝消息 我的validator类如下所示 和后映射从控制器 作为“默认”验证错误,我可以使用

    • 主要内容:输入验证,应用代码,实例解析AngularJS 表单和控件可以验证输入的数据。 输入验证 在前面的几个章节中,你已经学到关于 AngularJS 表单和控件的知识。 AngularJS 表单和控件可以提供验证功能,并对用户输入的非法数据进行警告。 客户端的验证不能确保用户输入数据的安全,所以服务端的数据验证也是必须的。 应用代码 < !DOCTYPE html > < html > < script src= "http:/

    • 有人能帮我完成输入验证功能吗。我正在验证整数输入。问题是当用户输入多个整数my cin时。fail()对每个整数运行,导致我的错误显示多次。让我告诉你我的意思 这是我的代码: 因此,如果用户要输入“jjj”;我的“请只输入整数”显示三次。我只想让它显示一次。我不知道怎么做。有什么想法吗?