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

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

终安和
2023-03-14

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

共有1个答案

潘嘉佑
2023-03-14

您不需要为此使用窗体备份对象。如果只想访问在请求中传递的参数(例如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:/";
    }
}
<!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>
 类似资料:
  • 问题内容: 看一下Java 6的源代码,实际上是通过使用Set的每个条目上的伪对象实例来实现的。 我认为这浪费了4字节(在32位计算机上)用于条目本身的大小。 但是,为什么仍然使用它呢?除了使代码维护更容易之外,还有什么理由要使用它? 问题答案: 实际上,不只是。 Java 6中该接口的 所有 实现都基于底层。这不是必需的;这只是实现的方式。您可以通过查阅有关的各种实现的文档来自己查看。 您的主要

  • 在Web开发中对于这样的一个流程可能很眼熟: 打开一个网页显示出表单。 用户填写并提交了表单。 如果用户提交了一些无效的信息,或者可能漏掉了一个必填项,表单将会连同用户的数据和错误问题的描述信息返回。 用户再次填写,继续上一步过程,直到提交了一个有效的表单。 在接收端,脚本必须: 检查用户递交的表单数据。 验证数据是否为正确的类型,合适的标准。例如,如果一个用户名被提交,它必须被验证是否只包含了允

  • 问题内容: 我使用布尔数组作为HashMap的键。但是问题是,尽管元素相同,但当将另一个数组作为键传递时,HashMap无法获取键。(因为它们是不同的对象)。 如何使其与数组作为键一起使用?这是代码: 这两个数组和都包含相同的元素,但是HashMap不会为返回任何内容。 我该如何运作? 问题答案: 您无法以这种方式这样做。都和将有不同的值,因为该方法是从继承,它使用参考来计算哈希码(默认实现)。因

  • 我正在编写一个Java程序,它读取.xlsx文件,并以.csv格式输出。这是我的代码: } 但是,我得到了以下错误: 我已包括以下罐子: dom4j-1.6.jar 我检查了文件格式是.xlsx,也检查了目录,但我不明白问题出在哪里。 如何删除此错误?

  • 我正在尝试编写一个服务器,它通过使用唯一生成的ID来跟踪其客户端。这个想法是,如果我是管理员,并且我想从服务器上引导某人,我就为该客户机查找适当的ClientID(它实际上只是一个字符串;唯一的区别是ClientID类负责确保没有两个客户机被分配了相同的ID),然后输入一个命令,如“kick 12”(如果我想要kick的人的ClientID碰巧是12)。我认为这是可行的,因为我认为可能是通过内部使

  • 是否支持使用表单识别器示例标签工具输入TIFF图像。https://docs.microsoft.com/en-us/azure/cognitive-services/form-recognizer/build-training-data-set#general-输入要求