Spring实战第五版第二章

2.3 校验表单输入

在编写"/design"页面post处理逻辑时,按照书本上直接'return "design"; '方式,会报如下错误:

Caused by: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'design' available as request attributeat org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:153)at org.springframework.web.servlet.support.RequestContext.getBindStatus(RequestContext.java:903)at org.thymeleaf.spring5.context.webmvc.SpringWebMvcThymeleafRequestContext.getBindStatus(SpringWebMvcThymeleafRequestContext.java:227)at org.thymeleaf.spring5.util.FieldUtils.getBindStatusFromParsedExpression(FieldUtils.java:306)at org.thymeleaf.spring5.util.FieldUtils.getBindStatus(FieldUtils.java:253)at org.thymeleaf.spring5.util.FieldUtils.getBindStatus(FieldUtils.java:227)at org.thymeleaf.spring5.processor.AbstractSpringFieldTagProcessor.doProcess(AbstractSpringFieldTagProcessor.java:174)at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74)... 63 more

个人猜测post请求时,model数据模型中的数据被清空,导致重新请求视图时,绑定的“design”对象为空,在渲染输入框中“design”对象属性时报错。可采用redirect方式重新请求“/design”的get方法,或重新设置model。

   @PostMappingpublic String processDesign(@Valid Taco design, Errors error,Model model){//若校验不生效,则检查valid依赖包是否引入完整if(error.hasErrors()){model.addAttribute("design",new Taco());return "design";//直接请求视图报错,可能因为model中的map.design为空
//            return "redirect:design";}log.info("processing design :"+design);return "redirect:/orders/current";//type=Not Found, status=404
//        return "/orders/current";//直接请求视图,未编辑网页时报错模板不存在}

通过传入model的方式解决报错后,请求校验不通过时前后页面变化如下图,原“ingredients”信息不再存在,进一步证实model中数据未在视图中保存。

ps:字段校验不生效,需检查javax.validation依赖包是否完整导入

<dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>1.1.0.Final</version>
</dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>5.4.1.Final</version>
</dependency>
<dependency><groupId>org.jboss.logging</groupId><artifactId>jboss-logging</artifactId><version>3.3.0.Final</version>
</dependency>
<dependency><groupId>com.fasterxml</groupId><artifactId>classmate</artifactId><version>1.3.3</version>
</dependency>

Spring实战第五版第二章字段校验返回视图报错解决及javax.validation完整pom依赖相关推荐

  1. 数据库系统概论第五版第二章习题6

    (SPJ数据库查询操作) 数据库系统概论第五版第二章习题6(SPJ数据库查询操作)_FunPony的博客-CSDN博客

  2. Spring实战第五版源码

    Spring实战第五版源码 链接:https://pan.quark.cn/s/11a451b1aa84 提取码:uzGW

  3. 电路 第五版 第二章 电阻电路的等效变换

    第二章电阻电路的等效变换 2-1 引言 2-2 电路的等效变换 2-3 电阻的串联和并联 2-4 电阻的Y形联结和△联结 2-6 实际电源的两种模型一起等效变换 2-7 输入电阻

  4. 数值分析(第五版) 第二章知识点总结

    仅供大致参考,有许多定义存在不严谨的地方:不同学校的考察重点自然是不同的 第二章 插值法 拉格朗日插值 Pn(x)=Ln(x)=∑i=0nf(xi)li(x)P_{n}(x)=L_{n}(x)=\su ...

  5. Spring实战第五版观后感之第一章

    spring所做的一切都是在简化开发,所以今天我们就来说说我所了解到的第一章的内容 一.什么是Spring? Spring的核心是提供了一个容器,通常称为Spring应用上下文,它们会创建和管理应用组 ...

  6. 计算机科学导论第五版第二章答案,计算机科学导论样题1答案

    一.填空题(每空1分,共15分) 1. 计算学科的根本问题是什么能被(有效地)自动进行. 2. 学科知识体由分枝领域.知识单元.知识点3个层次构成. 3. 在计算学科的抽象.理论.以及设计3个学科形态 ...

  7. 概率论与数理统计浙大第五版 第二章 部分习题+R代码

    4. (1) P ( X = k ) = q k − 1 p , k = 1 , 2 , 3 , . . . P(X=k)=q^{k-1}p,k=1,2,3,... P(X=k)=qk−1p,k=1, ...

  8. 高翔视觉SLAM十四讲(第二版)各种软件、库安装的以及报错解决方法

    目录 前言 系统版本 下载高翔视觉SLAM十四讲第二版的源代码 一.安装 Vim 二.安装 g++ 三.安装 KDevelop 以及汉化 1.安装 2.汉化 四.安装 Eigen 库 五.安装 Pan ...

  9. Spring实战(第3版)

    <Spring实战(第3版) > 基本信息 原书名:Spring in Actiong(third edition) 作者: (美)Craig Walls 译者: 耿渊 张卫滨 出版社:人 ...

最新文章

  1. 北大数学天才许晨阳,回国效力6年后,为什么又去了美国任教?
  2. mysql触发器运算_在MySQL中使用触发器计算列值?
  3. Apache Curator之分布式锁原理(二)
  4. 04-Fibonacci
  5. 唏嘘!一代手机OS退场:没生态、没开发者是失败主因
  6. Laravel 调试利器 Laravel Debugbar 扩展包安装及使用教程
  7. 使用CSS实现网格+渐变背景色的Web页面背景
  8. 阿里开发者招聘节 | 面试题02-04:给定一个二叉搜索树(BST),找到树中第K小的节点...
  9. 如何进入BIOS设置?
  10. C#之 DateGridView分页超简单
  11. Android 实现Home按键功能的两种方式
  12. 【深度学习】 Designing Network Design Spaces
  13. 深度学习与OpenCV DNN模块:权威指南
  14. 动态活体检测 | 算法分析
  15. [GO]学习新语言之卡塔练习--猜数字
  16. Data too long for column ‘data‘ at row 1以及设置成longblob造成的乱码解决。node-mysql
  17. 云计算介绍之云计算服务器
  18. java 埃氏筛法_筛法
  19. 微软独家采访Python之父! 大爆料13个问题,快来看看龟叔的怎么说!
  20. ZigBee的电子标签系统设计

热门文章

  1. eclipse中执行main函数显示错误:找不到或无法加载主类
  2. 为ATMega328pb芯片烧录Arduino bootloader
  3. GraphPad Prism 9.5.1 医学绘图分析安装使用教程
  4. 书论09 卫恒《四体书势》
  5. 网络电话通信基础知识-什么是软交换?
  6. 人体姿态识别(毕业设计+代码)
  7. 轻轻松松破解wifi,kali下fluxion的使用
  8. 2023全国安全生产合格证其他生产经营单位主要负责人模拟考试试卷一[安考星]
  9. app 404 html,现代404页面设计趋势分析与案例
  10. (转)MySpace 起步揭密