前端向后端传值的几种方式总结_前端给后端传值七种方式-程序员宅基地

技术标签: JavaScript  前端  后端  JAVA笔记  javascript  

一、HTML的标签form表单提交(常用)

from表单把所有属于表单中的内容提交给后台,例如输入框,单选框,多选框,文本域,文件域等。

  • 在后台可通过对应的name属性获取相应的值。
  • from表单中的action属性标识提交数据的地址。
  • method属性指明表单提交的方式。

前端form表单:
在这里插入图片描述
后端Controller控制器:

@RequestParam 注释请求参数
@RequestParam(“name”) 定义前端的name属性

    @RequestMapping("/index")
    public String index(@RequestParam("username") String username,@RequestParam("password") String password){
    
        System.out.println(username+"-"+password);
        return "list.html";
    }

测试请求:
http://localhost:10089/index?username=11&password=123
在这里插入图片描述
后端成功获取前端请求的数据。

二、JQuery中的ajax提交(常用)

JavaScript中也有ajax提交,但是代码太多,所以JQuery对JS中的ajax进行了简化。引入JQuery相应的包即可使用。一般格式为:

 $.ajax({
    
            url: "/index", //后端地址
            type: "post",       //提交方式
            data: {
    
                //向后台提交的数据
            },
            dataType: "JSON",       //规定请求成功后返回的数据
            success: function (data) {
    
                //请求成功之后进入该方法,data为成功后返回的数据
            },
            error: function (errorMsg) {
    
                //请求失败之后进入该方法,errorMsg为失败后返回的错误信息
            }
        });

总结:以上两种方式如果不显示的指定post提交方式,则默认的提交方式为get方式提交。此外,ajax中的url也可以直接通过字符串拼接,然后向后台提交数据,这种方式为get方式提交。下面详细说明

三、通过url字符串拼接向后台提交数据

1. 直接在ajax中url拼接数据

$.ajax({
    
            url: "/index?username="+username+"&password="+password, //后端地址(含参数)
            type: "get",       //提交方式
            dataType: "JSON",       //规定请求成功后返回的数据
            success: function (data) {
    
                //请求成功之后进入该方法,data为成功后返回的数据
            },
            error: function (errorMsg) {
    
                //请求失败之后进入该方法,errorMsg为失败后返回的错误信息
            }
        });

2. JS提交数据,通过window.location.href指定路径提交数据。

var deleteUser = function (deleteId) {
    
        if (confirm("确认删除编号是【"+deleteId+"】的成员吗?")){
    
            window.location.href="/DeleteUserServlet?deleteId="+deleteId;  //后端地址(含参数)
        }
    }

3. 通过a标签提交数据,通过a标签的href属性提交数据,和js提交数据类似。

<a href="/index?username="+username+"&password="+password"></a>

四、 后端返回前端数据

后端数据放到org.springframework.ui.model中,前端HTML就能直接在取出来

后端代码:
使用Model的addAttribute方法,将数据放到model中

    @RequestMapping("/index")
    public String index(
            @RequestParam("username") String username,
            @RequestParam("password") String password,
            //将查询到的数据通过org.springframework.ui.Model
            Model model) {
    
        Person person = personService.login(username, password);
        System.out.println(username + "-" + password);
        if (person != null) {
    
            return "list.html";
        } else {
    
            //将错误信息提示前端
            model.addAttribute("msg","账号密码不正确");
            return "index";
        }
    }

前端代码:
thymeleaf使用${}获取后端数据,

    <!--/*@thymesVar id="msg" type=""*/-->
    <p th:text="${msg}" style="color: red" ></p>

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ghgxm520/article/details/122758657

智能推荐

关于XILINX FPGA上的DDR_VRP和VRN引脚_ps_ddr_vrp_502-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏8次。Xilinx Customer CommunityThese signals have been defined this way since Xilinx introduced DCI (with Virtex II if I remember correctly). VRN is aNFET that drives low against a pull-up (open drain) and VRP is aPFET that drives high against a pull-down..._ps_ddr_vrp_502

html整体居中文字,html文字居中 html图片居中代码-程序员宅基地

文章浏览阅读4.9k次,点赞3次,收藏5次。html文字居中�?a href="//www.css5.com.cn/html/352.shtml">html图片居中方法代码,通过在html中实现文字居中图片居中篇�?a href="//www.css5.com.cn/html/">html中实现文字图片内容居中有三种方法,其中两种使�?a href="//www.css5.com.cn/">CSS样式实现,一直使用原始的h..._整体居中代码

Linux中tty是什么(tty1~7)-程序员宅基地

文章浏览阅读5.2k次,点赞3次,收藏7次。tty:终端设备的统称。tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty1~6是文本型控制台,tty7是X Window图形显示管理器。在本地机器上..._linux tty10

【ESP8266之LUA开发】九、File操作,实现C#改变并存储工作模式,SSID与PWD的保存与读取_esp8266 configfile.close()-程序员宅基地

文章浏览阅读1.5k次。emmmm,这一片信息量很大,算是一个综合的过程吧,如果哪里有疑问记得及时查看前面的内容,查漏补缺。文件操作,保存数据,这样的话就可以随意修改启动时工作在哪一种模式,哪一种通信,以及其余需要保存在模块内部的信息。 就实现上位机软件的第一个功能,,修改启动模式 对应的C#代码private void button2_Click(object sender, EventArgs e)_esp8266 configfile.close()

【Unity】如何优雅地移动物体-8个方法_unity 物体移动-程序员宅基地

文章浏览阅读8.1k次,点赞58次,收藏136次。在游戏开发中,如何移动物体?是我们需要思考的事情。Unity 引擎也提供了众多的方法,每个开发者的使用习惯也各不相同,所以往往不是很清楚在这种场景下哪种方式最好的或者最有效的。那么,这篇文章,我想分享一下移动物体的一些方法和优缺点。_unity 物体移动

【Python】python 反射机制在实际的应用场景讲解-程序员宅基地

文章浏览阅读97次。 剖析python语言中 "反射" 机制的本质和实际应用场景一. 前言def s1(): print("s1是这个函数的名字!") s = "s1"print("%s是个字符串" % s)在上面的代码中,我们必须区分两个概念,f1和“f1"。前者是函数f1的函数名,后者只是一个叫”f1“的字符串,两者是不同的事物。我们可以用f1()的方式调用函数f1,但我们不能用"f..._python反射机制及应用场景

随便推点

美团面试—手撕numpy之fps点云最远点采样实现_python 最远点采样-程序员宅基地

文章浏览阅读5.2k次。FPS没有想到不按套路出牌的美团今早就撕了这个。点云最远点采样,从一堆点集中选出一些点,使得他们尽可能地远离。这样采样出来的点能比较好的表征整个轮廓。在pointnet++中就用到过。整体思路是:分别维护一个已选取和待选取的点云集合。先从点云集合中选出一个点,然后计算其余所有点到该点的距离,距离最大的那个点是下次要加入的点。当pick集合中有多个点时,距离的定义为到集合每个点距离中的最小距离。关于距离的计算:维护一个distance列表,对于每次pick出来的点,去更新distance。可以利用_python 最远点采样

【云原生 | 31】Docker运行实时流计算框架Apache Storm_这是因为docker compose目前只能保证容器的启动顺序,但是无法确保所依赖容器中的-程序员宅基地

文章浏览阅读2.9w次,点赞11次,收藏11次。Apache Storm是一个实时流计算框架,由Twitter在2014年正式开源,遵循Eclipse Public License 1.0。Storm基于Clojure等语言实现。_这是因为docker compose目前只能保证容器的启动顺序,但是无法确保所依赖容器中的

【转】微信小游戏开发总结-程序员宅基地

文章浏览阅读165次。小游戏是小程序的一个类目,小游戏是微信开放给小程序的更多的能力,让小程序开发者有了开发游戏的能力。小游戏没有WXSS、WXML、多页面等内容,但加了一些渲染、文件系统以及后台多线程的功能。小游戏的运行环境是小程序环境的扩展,基本思路也是封装必要的 WEB 接口提供给用户,尽可能追求和 WEB 同样的开发体验。小游戏在小程序环境的基础上提供了 WebGL 接口的封装..._h5 游戏 转 微信 weapp-adapter

公众号模板消息推送_公众号平台模板推送流程-程序员宅基地

文章浏览阅读365次。首先公众号和小程序需要在同一主体下需要在公众号“广告与服务”→“模板消息”中申请自己所需的模板需要在公众号“设置与开发”→“基本配置”拿到appid,appsecret及配置服务器对应的IP白名单其次推送需要推送人员关注该公众号且拿到该用户的openid进行推送最后点击模板消息进入小程序的话,还需要提供小程序的appid和path信息以上就是公众号推送的大致流程啦_公众号平台模板推送流程

python编程从入门到实践第五章习题_python快速编程入门第五章课后题-程序员宅基地

文章浏览阅读1.2k次。第五章讲的是if的一些用法,和C、C++相比,只是把当中的else if 换成了elif,其他逻辑等完全没有任何变化。总的来说还是没有任何难度的,只是每一个语句后面需要加一个“:”,这个是初学的时候特别容易遗漏的。好了,直接上代码:#5-1car = 'subaru'print("Is car == 'subaru'? I Predict True.")print(car=='subaru')..._python快速编程入门第五章课后题

基于SpringBoot的社区医院管理服务系统的设计与实现_基于springboot的社区医疗服务管理系统-程序员宅基地

文章浏览阅读1.3k次。因此,系统无疑给人们的生活带来了极大的方便,网络的应用让时间和距离不再是局限。通过前面的功能分析可以将社区医院管理服务系统的功能分为管理员、用户和医生三个部分,系统的主要功能包括首页、个人中心、用户管理、医生管理、预约医生管理、就诊信息管理、诊疗方案管理、病历信息管理、健康档案管理、费用信息管理、系统管理等内容。预约医生管理,在预约医生管理页面中可以对索引、预约编号、医生账号、医生姓名、预约时间、科室、用户账号、用户姓名、审核回复、审核状态、审核等内容进行详情、就诊、修改或删除等操作,如图5-21所示。_基于springboot的社区医疗服务管理系统