zoukankan      html  css  js  c++  java
  • 关于spring mvc接受前台参数的笔记

    项目中有form表单传递参数的:

    公司是这么来接受的:通过@ModelAttribute BusinessParam businessParam来接受参数,这里还有个ModelMap作用和modelandview作用类似,会把相应的参数传到jsp界面上,详细信息需要百度了

       @RequestMapping(value="/pcPay")
        //@ModelAttribute获取POST请求的FORM表单数据
        public String pcPay(ModelMap model, @Valid @ModelAttribute BusinessParam businessParam, BindingResult errors){
            //参数检验
            if(errors.hasErrors()){
                List<String> fieldErrors = errors.getFieldErrors().stream().map(fieldError -> fieldError.getDefaultMessage()).collect(Collectors.toList());
                String errorMsgs = fieldErrors.stream().filter(StringUtils::isNotBlank).map(e->
                        fieldErrors.indexOf(e)!=(fieldErrors.size()-1)?e+",":e).reduce("",String::concat);
                model.addAttribute("tip","参数检验错误");
                model.addAttribute("errorMsg",errorMsgs);
                return "error";
            }

    从这里引申后台接受表单数据的方式有三种:https://blog.csdn.net/zdb292034/article/details/81241239,这里推荐使用第三种方式来接受,也就是@ModelAttribute

    表单提交的数据也就是请求数据,分为Get和Post两种方式提交。

    Controller中有三种方式获取表单数据:

    •  Controller的方法,添加HttpServletRequst类型入参,通过HttpServletRequst.getParameter()获取请求数据
    •  Controller的方法,添加对应表单字段name的参数,有几个表单字段就添加多少个对应的入参,如下          
    1.  
      @RequestMapping(value="/user/save", method=RequestMethod.POST)
    2.  
      private String doSave(@RequestParam("userName") String userName, @RequestParam("age") Integer age, HttpSession session){
    •  Controller的方法,添加自定义Java类型的入参,并添加@ModelAttribute注解(实际上,可以不添加@ModelAttribute注解) ,由这个入参对象接收表单提交的数据,如下
    1.  
      @RequestMapping(value="/user/save", method=RequestMethod.POST)
    2.  
      private String doSave(@ModelAttribute User user, HttpSession session){
  • 相关阅读:
    android升级软件版本号,您安装后的新版本号,成功安装画面没有出现,或直接回到桌面
    Linux下安装Tomcat服务器和部署Web应用
    Linux下开启mysql数据库的远程访问权限
    【项目管理和构建】——Maven简介(一)
    用maven搭建多模块项目
    Maven之自定义pom类型的基础项目
    Maven之搭建本地私服(nexus)仓库
    Maven之自定义archetype生成项目骨架(一)
    Maven多模块项目搭建
    安装maven之后,cmd提示mvn不是内部命令的解决办法
  • 原文地址:https://www.cnblogs.com/cherishforchen/p/10933292.html
Copyright © 2011-2022 走看看