阿麥Mai 2023-02-17 10:31 采纳率: 57.1%
浏览 234
已结题

为什么前端获取不到后端model.addAttribute添加的参数?

后端print出来显示的value1先是正常数值,再变成了null是为什么?

@RequiresPermissions("msg:msgInner:view")
    @RequestMapping(value = "form")
    public String form(HttpServletRequest request, Model model) {
        model.addAttribute("value1", request.getParameter("value1"));
        System.out.println(model.addAttribute("value1", request.getParameter("value1")));
        return "modules/msg/msgInnerForm";
    }

img

前端是这样获取,控制台输出的是空白。

<script>
        var data = '${value1}';
        console.log(data);
    </script>

img

  • 写回答

1条回答 默认 最新

  • qq_46161207 2023-02-17 10:35
    关注

    根据代码和截图,问题出在了以下这行代码中:

    System.out.println(model.addAttribute("value1", request.getParameter("value1")));
    

    这行代码实际上是将 "value1" 这个参数添加到了 Model 对象中,并返回了一个 Model 对象。因此,当您将其传递给 System.out.println 函数时,它会输出一个 Model 对象,而不是 "value1" 这个参数的值。

    要解决这个问题,您应该这样编写代码:

    String value1 = request.getParameter("value1");
    model.addAttribute("value1", value1);
    System.out.println("value1 = " + value1);
    

    这样,"value1" 这个参数的值就被添加到了 Model 对象中,并通过 System.out.println 函数输出。同时,它也可以在前端通过 ${value1} 获取到了。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月22日
  • 创建了问题 2月17日

悬赏问题

  • ¥15 带序列特征的多输出预测模型
  • ¥15 VB.NET读取电脑主板序列号
  • ¥15 Python 如何安装 distutils模块
  • ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
  • ¥15 资源泄露软件闪退怎么解决?
  • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
  • ¥30 comfyui openpose报错
  • ¥20 Wpf Datarid单元格闪烁效果的实现
  • ¥15 图像分割、图像边缘提取
  • ¥15 sqlserver执行存储过程报错