java - Spring 可以将哪些参数类型注入(inject)到 Controller 处理程序方法中?

标签 java spring spring-mvc

如标题所述,在将 Spring MVC 的 @ModelAttribute 注释应用于方法参数时,我可以使用哪些目标类型?

我知道以下语法(我自己经常使用):

public void finishForm(@ModelAttribute UserInfo info) {
      .......
      return model;
}

这将是表单支持 Controller 的一部分,其中 Spring Databinding 正在执行所有解析并随后填充我的自定义对象 (UserInfo)。

但在我目前的情况下,填充 Java Properties 会更方便对象或 Map<String, String>与表单输入。

这是否是一个有效的用例,您能否为@ModelAttribute 提供所有目标类型的引用?

最佳答案

如果您想在 map 中输入所有表单,您可以使用以下方法:

public void finishForm(HttpServletRequest request) {

        Map<String, String[]> userInfo = request.getParameterMap();

        userInfo.keySet().forEach(s -> {
            System.out.println(s + " = "+Arrays.toString(userInfo.get(s)));
        });        
    }

关于java - Spring 可以将哪些参数类型注入(inject)到 Controller 处理程序方法中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46817791/

相关文章:

java - Spring mvc 4 hello world 示例抛出 javax.servlet.ServletException : Failed to instantiate WebApplicationInitializer class

jquery - 从 ajax Spring MVC Controller 方法执行正常重定向

java - Spring MVC 是否在每次调用时创建一个定义为 ModelAttribute 的新对象?

java - 在 Primefaces 中拉伸(stretch)列表

java - 无法从 Class<SpringRunner> 转换为 Class<?延伸运行者>

spring - 为具有不同参数的相同 url 模式创建两个方法

java - 停止Android Service创建的线程

java - 有界、自动丢弃、非阻塞、并发收集

java - 尝试访问部署在 K8s/Argocd 服务器上的 Spring 后端时出现 "required audience is missing"

spring - 如何配置spring批处理不自动创建用于存储元数据的批处理表?