弹簧MVC。 POST 表单未绑定

2024-02-11

我有一些简单的 Man 类,其中包含构造函数、getter 和 setter

public class Man {

    @Size(min = 3, max = 20, message = "Username must be between 3 and 20 characters long.")
    @Pattern(regexp="^[a-zA-Z0-9]+$", message = "Username must be alphanumeric with no spaces")
    private String name;

    @Size(min = 1, max = 2, message = "Age must be between 1 and 2 characters long")
    @Pattern(regexp = "^[0-9]+$", message = "Age must be numerical with no spaces")
    private String age;

    Man(){

    }

    Man(String name, String age){
        super();
        this.name = name;
        this.age = age;
    }

    public String getName(){
        return name;
    }

    public String getAge(){
        return age;
    }

    public void setName(String name){
        this.name = name;
    }

    public void setAge(String age){
        this.age = age;
    }


}

它服务:

@Service
public class ManService {
Map<String, Man> people = new HashMap();
public void saveMan(Man man){
        System.err.println(man); // after the form is submitted object is created
        System.err.println(man.getName()); // but it name == null
        System.err.println(man.getAge()); // and age == null
        people.put(man.getName(), man);
    }

}

通用控制器。当转到 /user?new 时,将创建对象 Man() 并将其插入框 modelAttribute 中,但在提交表单后,Man() 对象的 name 和age 字段将等于空值。

@RequestMapping(value="/user", method = GET, params = "new")
public String outputParam(Model model){
    model.addAttribute("box",new Man());
    return "param";
}

@RequestMapping(value="/user", method = POST)
public String addFromForm(@Valid Man man, BindingResult bindingResult){
    if (bindingResult.hasErrors()) {
        return "param";
    }
    manService.saveMan(man);
    return "redirect:../list";
}

view:

<sf:form method="POST" modelAttribute="box" enctype="multipart/form-data">
            <fieldset>
                <table cellspacing="0">
                    <tr>
                        <th><sf:label path="name">User name:</sf:label></th>
                        <td><sf:input path="name" size="15" /></td>
                        <sf:errors path="name" cssClass="error"/>
                    </tr>
                    <tr>
                        <th><sf:label path="age">Age:</sf:label></th>
                        <td><sf:input path="age" size="20" /></td> 
                        <sf:errors path="name" cssClass="error"/>

                    </tr>
                    <input name="commit" type="submit" value="sent this shit" />
                </table>
            </fieldset>
        </sf:form>

在结果 POST 表单中,不绑定输入字段中的值。


尝试使用这个

@RequestMapping(value="/user", method = POST)
public String addFromForm(@Valid @ModelAttribute("box") Man man, BindingResult bindingResult){
    if (bindingResult.hasErrors()) {
        return "param";
    }
    manService.saveMan(man);
   return "redirect:../list";
}

正如@M所建议的。迪努姆

在发出 POST 请求时,您必须对数据和请求进行编码。

HTML 表单提供了三种编码方法。

如果您的表单有一个文件,那么您必须使用 multipart/form-data。

我认为对于正常形式你不应该使用它。而是使用 application/x-www-form-urlencoded (默认情况下)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

弹簧MVC。 POST 表单未绑定 的相关文章

  • Java 创建浮雕(红/蓝图像)

    我正在编写一个 Java 游戏引擎 http victoryengine org http victoryengine org 并且我一直在尝试生成具有深度的 3D 图像 您可以使用那些红色 蓝色眼镜看到 我正在使用 Java2D 进行图形
  • 如何从另一个xml文件动态更新xml文件?

    我想从另一个 xml 文件更新 xml 文件 我使用了一个 xml 文件 如下所示 one xml
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • 使用 Spring 时实例化对象,用于测试与生产

    使用 Spring 时 应该使用 Spring 配置 xml 来实例化生产对象 并在测试时直接实例化对象 这样的理解是否正确 Eg MyMain java package org world hello import org springf
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • 如何解决 onEditCommit 事件上的类型不匹配错误?

    我在 Fxml 中使用 onEditCommit 事件在用户编辑数据后检索数据 FXML 代码
  • Android - 除了普通 SSL 证书之外还验证自签名证书

    我有一个通过 SSL 调用 Web 服务的 Android 应用程序 在生产中 我们将拥有由受信任的 CA 签名的普通 SSL 证书 但是 我们需要能够支持自签名证书 由我们自己的 CA 签名 我已经成功实施了接受自签名证书的建议解决方案
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • 参数动态时如何构建 JPQL 查询?

    我想知道是否有一个好的解决方案来构建基于过滤器的 JPQL 查询 我的查询太 富有表现力 我无法使用 Criteria 就像是 query Select from Ent if parameter null query WHERE fiel
  • 为什么 ConcurrentHashMap::putIfAbsent 比 ConcurrentHashMap::computeIfAbsent 更快?

    使用 ConcurrentHashMap 我发现computeIfAbsent 比putIfAbsent 慢两倍 这是简单的测试 import java util ArrayList import java util List import
  • 在 Spring MVC 3.2 中实现 JSONP

    据我了解 可以在 Spring MVC 的早期版本中使用自定义过滤器来实现 JSONP 此外这个例子 http www iceycake com 2012 06 xml json jsonp web service endpoints sp
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co
  • 如何在keycloak中动态编辑standalone.xml文件

    我正在尝试通过 docker 编辑standalone xml 并尝试添加 但 keycloak 正在使用它standalone xml 但我可以看到standalone xml 文件中的更改 我需要在standalone xml 文件中添
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • 从一个文本文件中获取数据并将其移动到新的文本文件

    我有一个文件 里面有数据 在我的主要方法中 我读入文件并关闭文件 我调用另一种方法 在原始文件的同一文件夹内创建一个新文件 所以现在我有两个文件 原始文件和通过我调用的方法生成的文件 我需要另一种方法 从原始文件中获取数据并将其写入创建的新
  • Java 推断泛型类型

    我正在寻找类似的推断捕获泛型类型的概念 类似于以下方法片段 但不是捕获泛型类型的类 public
  • java中如何找到class文件的包

    我正在编写一个使用 class 文件的 java 程序 我希望能够读取文件系统上的 class 文件 使用 InputStream 并确定它所在的包 该 class 文件可能不在一个好的包目录结构中 它可能位于某个随机位置 我怎样才能做到这
  • 使用 eclipse IDE 配置 angularjs

    我想开始使用 AngularJs 和 Java Spring 进行开发 我使用 Eclipse 作为 IDE 我想配置我的 Eclipse 以使这些框架无缝工作 我知道我可能要求太多 但相信我 我已经做了很多研究 你们是我最后的选择 任何帮

随机推荐

  • 如何批量分割numpy数组?

    听起来很容易 但我不知道该怎么做 我有 numpy 二维数组 X 1783 30 我想将它们分成 64 个批次 我这样编写代码 batches abs len X BATCH SIZE 1 It gives 28 我正在尝试批量预测结果 所
  • 如何使用rank函数获取hive中的最新记录

    我在配置单元中有下表 其中包含列 ID 名称和时间戳 根据下面的时间戳应该输出最新记录 你不需要为此排名 您的输出描述如下 select t from t order by t transaction time desc limit 3 E
  • mingw64 下 GetACP 链接错误 (mingw-builds)

    我试图构建 gdal 1 10 0 http trac osgeo org gdal wiki DownloadSource http trac osgeo org gdal wiki DownloadSource 使用 mingw64 来
  • android.database.sqlite.SQLITeException:没有这样的表:编译时管理:INSERT INTO ...等

    我正在尝试在数据库中添加另一个表 第一个表已成功创建 并且数据也已成功插入 但是当我尝试添加另一个表 然后插入数据时 我收到此错误 在将 INSERT 编译到 等时没有这样的表 我在 google 和 stackoverflow 中进行了搜
  • 只为一个页面设置cookie,如果用户浏览其他页面,则不会发送回服务器

    cookie 只能设置 获取一页吗 如果我浏览与该页面位于同一根域上的其他页面 则 cookie 不会发送到服务器 或者只是根本不发送 但仍然可以通过 jQuery cookie 插件访问 我的意思是cookie仅在客户端 最好不要将它们发
  • ios6.0上ZxingWidget存档错误

    我尝试存档 ZxingWedget 演示 scanTest 编译就ok了 它可以在模拟器上运行 但在ios6 0上不能完全存档 这是错误 Stripping Users ganguo Library Developer Xcode Deri
  • 如何在 tkinter 中自动换行小部件?

    几年前我在android中看到过这个函数 布局 但我记不起这个函数名是什么 我需要一个自动替换小部件 如果新小部件的宽度与窗口末尾相交 我想将该小部件移至新行 以下是我的预期输出 我认为 获取宽度并计算新的小部件位置就可以解决这个问题 但是
  • JavaFX 实时时间和日期

    我当前正在使用 JavaFx 构建一个应用程序 该应用程序具有额外的功能 可以在场景的右上角显示当前日期和时间 由于我是 JavaFX 新手 我不知道如何实现这一点 我尝试在 swing 中使用旧代码 但出现 IllegalStateExc
  • 一次对多个 YuvImage 使用 compresstojpeg 时内存不足

    我正在构建一个缓冲应用程序N相机帧 当用户点击按钮时 它会使用所有保存的帧应用效果来保存照片 我正在保存照片并在异步任务 当我执行它时 我会从屏幕上删除所有内容 只留下一个TextView显示保存照片的进度 目前异步任务 doInBackg
  • 使用 useState 和 useContext React Hooks 持久化 localStorage

    我已经设置了一个提供程序来为用户共享一些状态useContext 因此 我试图利用本地存储来保存用户图像 头像等 的一些状态 首先 我尝试保留用户的头像 本质上是从 Express 中保存他们的 ID 然后在调用 Cloudinary 一种
  • 返回 PostgreSQL 中插入的行

    我目前正在开发一个报告生成 servlet 它聚合来自多个表的信息并生成报告 除了返回结果行之外 我还将它们存储到报告表中 以便以后不需要重新生成它们 并且如果擦除它们所提取的表 它们将持续存在 为了执行后者 我有一个以下形式的语句 注意
  • C# 中是否有存储优化的稀疏矩阵实现?

    有没有优化过的存储稀疏矩阵 http en wikipedia org wiki Sparse matrix在C 中的实现 有Math NET http www mathdotnet com 它有一些备用矩阵实施 http nmath so
  • 在Python中将微秒增量转换为各自转换的最佳方法?

    我目前有一个预定义的字典 忽略字母 不过 我希望转换更加稳健 假设输入 33000000 微秒并知道转换为 33 秒 然后 一分钟以上但一小时以下的任何微秒输入都会显示为分钟等 是否可以在不需要此预定义字典的情况下获得此编码 最好是一个函数
  • 如何解决python中pydicom的编码问题

    这是代码 import dicom ds dicom read file FILE PATH print ds Error LookupError unknown encoding ISO 2022 IR 100 当使用 pydicom 查
  • 冻结 EPPlus 中的列(Excel 拆分函数)

    我一直在使用 EPPlus 来生成 Excel 文件 以满足我的项目要求我进行的导出数量 他们想要的大多数导出往往与他们遗留系统中已有的导出完美匹配 然而 其中之一 他们想要不同 他们希望它看起来与遗留系统的导出之一一模一样在他们完成一些典
  • COM + 等待单对象

    在过去的几天里 我一直在努力为一个应用程序找到一个好的架构 经过一番研究后 我终于陷入困境 原因就是 COM 相关应用程序将有多个 GUI 线程 它们将为工作线程安排工作项 工作线程将通过 CoInitialize NULL 初始化 COM
  • 如何将 ng-href 与绝对 url 一起使用?

    我对 AngularJS 仍然很陌生 我有一个问题 我似乎无法找到解决方案 而且我没有时间去研究 Angular 源代码 这是我的场景 我有一些 json 数据 其中包含我想在屏幕上显示的 url 集合 我有一个元素ng repeat li
  • 如何修复这些漏洞? (npm 审核修复未能修复这些漏洞)

    我的项目有 6 个高严重性漏洞 我不知道如何修复它们 npm 审核修复失败 请帮我解决这个问题 我正在安装https www npmjs com package toastr https www npmjs com package toas
  • Delphi:了解构造函数

    我正在寻找理解 virtual override overload 重新介绍 当应用于对象构造函数时 每次我随机添加关键字 直到编译器关闭 并且 在使用 Delphi 开发 12 年之后 我宁愿知道我在做什么 而不是随机尝试 给定一组假设的
  • 弹簧MVC。 POST 表单未绑定

    我有一些简单的 Man 类 其中包含构造函数 getter 和 setter public class Man Size min 3 max 20 message Username must be between 3 and 20 char