使用 HashMap 作为表单支持 Bean Spring MVC + ThymeLeaf

2024-01-07

我是 Spring MVC 的新手(来自 Grails)。是否可以使用 HashMap 作为表单支持 bean?

在 Grails 中,人们可以从任何控制器操作访问名为 params 的对象。 Params 只是一个映射,其中包含 POST 数据中包含的所有字段的值。根据我到目前为止所读到的内容,我必须为我的所有表单创建一个表单支持 bean。

是否可以使用地图作为支持对象?


您不需要为此使用表单支持对象。如果您只想访问请求中传递的参数(例如 POST、GET ...),您需要获取参数映射HttpServletRequest#getParameterMap方法。查看将所有参数名称和值打印到控制台的示例。

另一方面。如果你想使用绑定,你可以包装Map对象转化为表单支持 bean。

控制器

import java.util.Arrays;
import java.util.Map;
import java.util.Map.Entry;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class ParameterMapController {

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String render() {
        return "main.html";
    }

    @RequestMapping(value = "/", method = RequestMethod.POST)
    public String submit(HttpServletRequest req) {
        Map<String, String[]> parameterMap = req.getParameterMap();
        for (Entry<String, String[]> entry : parameterMap.entrySet()) {
            System.out.println(entry.getKey() + " = " + Arrays.toString(entry.getValue()));
        }

        return "redirect:/";
    }
}

主要.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8" />
</head>
<body>

<form th:action="@{/}" method="post">
    <label for="value1">Value 1</label>
    <input type="text" name="value1" />

    <label for="value2">Value 2</label>
    <input type="text" name="value2" />

    <label for="value3">Value 3</label>
    <input type="text" name="value3" />

    <input type="submit" value="submit" />
</form>

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

使用 HashMap 作为表单支持 Bean Spring MVC + ThymeLeaf 的相关文章

随机推荐

  • Spring Boot 2 - Webflux - Websocket - 激活压缩

    我在用着 Spring Boot 2 1 0 发布 Webflux 不是 MVC 网络套接字 反应式网络 我想用 GZIP 或任何其他压缩 压缩返回的有效负载 我尝试过 application yml 中的配置 server compres
  • 更改字典键的最佳方法

    我想知道是否有更好的方法来更改字典键 例如 var dic new Dictionary
  • SQLAlchemy/MySQL 在查询期间丢失与 MySQL 服务器的连接

    SQLAlchemy 0 9 8 和 mysql 5 6 21 osx10 8 x86 64 和 MAC OS X 10 3 3 Yosemite 我总是断断续续 InterfaceError InterfaceError 2013 Los
  • 宏编程中如何获取当前目录名称?

    我需要知道如何在宏编程中获取当前目录变量 我正在桌面上保存一个文件 如下所示 C Users deadlock Desktop data html 是否可以将 C Users deadlock Desktop 替换为当前的直接变量 这是我的
  • 执行相机意图时 Activity 被终止

    编辑 问题已解决 请参见我的答案 https stackoverflow com a 9791832 839965 below 在我的应用程序中 我调用系统相机拍照 然后处理结果onActivityResult 你知道 平常的 它曾经有效
  • Setuid 到 Perl 脚本

    我正在使用 Perl 脚本从 mqueue 文件夹中删除 sendmail 的数据 When I setuid到该 Perl 脚本并尝试从用户运行它 它会抛出以下消息 Insecure dependency in chdir while r
  • 如何通过标签查找并禁用内容控件以删除它及其内容?

    我有一个不幸的任务 被迫为我公司的单位设计一个基于Word 的电子生产卡 尽管我从未使用过VBA 我更愿意在 Excel 中完成此操作 因为我不必费力处理内容控制和页面上各种表格中难以找到的位置 但公司的文档系统强制这一特定的文档系统必须在
  • 如何在 CakePHP 中生成 MySQL IS NOT NULL 条件?

    我正在尝试获取结果的子集作为 virtualField 以在我的视图中使用 我什至可能不知道如何解决这个问题 但这是我到目前为止所做的 我在这里从这个问题开始 CakePHP virtualField 查找所有不为空 https stack
  • Typescript,从接口中提取多个调用签名[重复]

    这个问题在这里已经有答案了 鉴于以下情况 interface Foo attr string a string number a number number 如何创建一种仅选择函数重载的类型 这意味着 interface Bar a str
  • 错误:请通过更新 google-services 插件的版本来修复版本冲突

    我在使用 Google 服务插件时遇到问题 我将谷歌服务更新到最新版本 我从这个网站获得了依赖 https bintray com android android tools com google gms google services h
  • Keras、Tensorflow:将两个不同的模型输出合并为一个

    我正在研究一种深度学习模型 我试图将两种不同模型的输出结合起来 整体结构是这样的 所以第一个模型采用一个矩阵 例如 10 x 30 input 1 input text layers Input shape 1 dtype string e
  • net.snowflake.client.jdbc.SnowflakeChunkDownloader :等待下载 #chunk0 超时

    等待下载块错误超时 Snowflake JDBC 驱动程序版本 3 13 18 遇到错误 net snowflake client jdbc SnowflakeSQLException JDBC driver internal error
  • iPython magic for Zipline 找不到数据包

    我有一个 Python 2 7 脚本 可以在命令提示符下正常运行 Zipline 使用 bundle myBundle加载自定义数据包myBundle我已经注册使用extension py zipline run f myAlgo py b
  • 如何使用 HttpWebRequest 发布数据?

    我有这个HttpWebRequest var request HttpWebRequest Create http example com api Phrase GetJDTO request ContentType application
  • 在GUI中删除表中的数据

    我有一个问题 当用户输入密钥时 如何删除 GUI 中 jTable 中的所有数据 谢谢 您可以设置一个新的空数据模型 TableModel newModel new DefaultTableModel jtable setModel new
  • Mahout 堆空间不足

    我正在使用 Mahout 在一组推文上运行 NaiveBayes 两个文件 一个 100 MB 一个 300 MB 我将 JAVA HEAP MAX 更改为 JAVA HEAP MAX Xmx2000m 之前是 1000 但即便如此 mah
  • 自动过滤 SQLAlchemy 查询的正确方法?

    我刚刚使用 sqlalchemy 从 CRM 应用程序中反思了一个相当令人讨厌的模式 所有表上都有一个已删除的列 我想自动过滤所有标记为已删除的实体和关系 这是我想出的 class CustomizableQuery Query An ov
  • 将阴影添加到视差遮挡贴图

    我已经通过实现视差遮挡贴图学习OpenGL https learnopengl com Advanced Lighting Parallax Mapping 现在我想添加自阴影 以便片段挤压在表面上投射阴影 我读过一些关于这个主题的论文 但
  • GitHub - 按作者列出提交

    有什么办法可以上GitHub http github com 在浏览器中列出单个作者所做的所有提交 都不是本地的 例如通过git log 也不通过 API 单击提交列表 提交历史记录 中的用户名只会进入该用户的个人资料页面 检查 GitHu
  • 使用 HashMap 作为表单支持 Bean Spring MVC + ThymeLeaf

    我是 Spring MVC 的新手 来自 Grails 是否可以使用 HashMap 作为表单支持 bean 在 Grails 中 人们可以从任何控制器操作访问名为 params 的对象 Params 只是一个映射 其中包含 POST 数据