spring前后端分离,前端传值三种方式


1.建立HelloController类

之前的工作请看https://www.cnblogs.com/zc-blog-com/p/13356910.html

@RestController
public class HelloController {

//    @ResponseBody//将方法的返回值以json字符串的形式进行返回

    @RequestMapping("/hello.do")
    public String action() {
        System.out.println(123);
        return "null";
    }
}
View Code

 

 

在webapp下建一个hello.html文件

 

 2.hello.html文件中写一个表单

<body>
<form action="/hello.do" method="get">
    姓名:<input type="text" name="username">
    密码:<input type="password" name="password">
    <input type="submit" value="提交">
</form>
</body>

下面是第一种方法传值:

使用servlet方法

导入servlet依赖

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>
View Code

修改HelloController类里面的内容

@RestController
public class HelloController {

//    @ResponseBody//将方法的返回值以json字符串的形式进行返回

    @RequestMapping("hello.do")
    public String action(HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        System.out.println(username+ " "+password);
        return null;
    }
}

username和password要和HTML里面的名字一样

 

 

运行项目,输入信息,可以在控制台看到输入的信息

 

 

2.通过反射,匹配参数名来注入值,用的比较多一种方法

参数比较少时

修改HelloController类里面的内容

@RequestMapping("hello1.do")
    //通过反射,匹配参数名来注入值
    //java反射机制本身会注入失败,使用@RequestParam来解决。当有多个参数时,发现某个参数接收不到,可以试试这个注解
    public String action1(@RequestParam ("username")String username, String password) {
        System.out.println(username+ " "+password);
        return null;
    }
}

修改HTML内容

 

<form action="/hello1.do" method="get">
    姓名:<input type="text" name="username">
    密码:<input type="password" name="password">
    <input type="submit" value="提交1">
</form>

运行项目,输入信息,可以在控制台看到输入的信息

3参数比较多时:

创建一个实体类User

 

 

引入lombok依赖

 <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.12</version>
    </dependency>

这时User就会自动生成set,get方法

修改HelloController类里面的内容

//针对参数比较多时
@RequestMapping("hello2.do")
//通过反射,匹配参数名来注入值
public String action2(User user) {
System.out.println(user);
return null;
}

修改HTML内容

<form action="/hello2.do" method="get">
    姓名:<input type="text" name="username">
    密码:<input type="password" name="password">
    <input type="submit" value="提交2">
</form>

 运行项目,输入信息,可以在控制台看到输入的信息

 

 最后说一下怎么获取多个值

 

 

那就结束了

加油哦


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM