SpringMVC 获取 表单 数据
1、实体类
package cn . hadron . bean ; import java . io . Serializable ; import java . util . Arrays ; /** * create table users( id int auto_increment primary key, username varchar(45), password varchar(45), age int default 0 ); insert into users(username,password,age) values('hadron','123',18); * @author chengyq * */ // 域对象,实现序列化接口 public class UserBean implements Serializable { private Integer id ; private String username ; private String password ; private String birthday ; private Integer age ; //测试单选按钮 private String sex ; //测试复选按钮 private String [] favorite ; public UserBean () {} public UserBean ( String username , String password , int age ) { this . username = username ; this . password = password ; this . age = age ; } public UserBean ( String username , String birthday , String sex ) { this . username = username ; this . birthday = birthday ; this . sex = sex ; } public Integer getId () { return id ; } public String getUsername () { return username ; } public String getPassword () { return password ; } public Integer getAge () { return age ; } public void setId ( Integer id ) { this . id = id ; } public void setUsername ( String username ) { this . username = username ; } public void setPassword ( String password ) { this . password = password ; } public void setAge ( Integer age ) { this . age = age ; } public String getSex () { return sex ; } public void setSex ( String sex ) { this . sex = sex ; } public String [] getFavorite () { return favorite ; } public void setFavorite ( String [] favorite ) { this . favorite = favorite ; } public String getBirthday () { return birthday ; } public void setBirthday ( String birthday ) { this . birthday = birthday ; } @Override public String toString () { return "UserBean{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + ", birthday='" + birthday + '\'' + ", age=" + age + ", sex='" + sex + '\'' + ", favorite=" + Arrays . toString ( favorite ) + '}' ; } }2、控制器
package cn . hadron . controller ; import cn . hadron . bean . UserBean ; import org . springframework . stereotype . Controller ; import org . springframework . ui . Model ; import org . springframework . web . bind . annotation . ModelAttribute ; import org . springframework . web . bind . annotation . RequestMapping ; import org . springframework . web . bind . annotation . RequestMethod ; import java . util . ArrayList ; import java . util . List ; @Controller @RequestMapping ( value = "/f" ) public class FormController { @RequestMapping ( value = "/getEditPage" , method = RequestMethod . GET ) public String getEditPage ( Model model ) { System . out . println ( "表单测试" ); UserBean user = new UserBean ( "jack" , "1997-7-1" , "女" ); // model中添加属性user,值是user对象 model . addAttribute ( "user" , user ); //返回Edit.jsp页面 return "edit" ; } @RequestMapping ( value = "/edit" , method = RequestMethod . POST ) public String edit ( @ModelAttribute UserBean user , Model model ) { System . out . println ( "获取表单数据:" ); //@ModelAttribute注解指示了参数应该从模型(这里所说的[模型]指 Model)中获取 model . addAttribute ( "username" , user . getUsername ()); model . addAttribute ( "birthday" , user . getBirthday ()); model . addAttribute ( "sex" , user . getSex ()); model . addAttribute ( "favorite" , user . getFavorite ()); System . out . println ( "user=" + user ); //返回userPage.jsp页面 return "userPage" ; } /** * 可以用@ModelAttribute注解的方法做一些初始化操作。 * 当同一个controller中有多个方法被@ModelAttribute注解标记, * 所有被@ModelAttribute标记的方法均会被执行,按先后顺序执行,然后再进入请求的方法 * @return */ @ModelAttribute ( "webList" ) public List < String > getWebList () { List < String > webList = new ArrayList < String >(); webList . add ( "SpringMVC" ); webList . add ( "SpringBoot" ); webList . add ( "SpringCloud" ); return webList ; } }3、页面
<%@ page language = "java" contentType = "text/html; charset=UTF-8" pageEncoding = "UTF-8" %> <%@ taglib prefix = "form" uri = "http://www.springframework.org/tags/form" %> <!DOCTYPE html> <html> <head> <meta charset = "UTF-8" > <title> 测试form标签 </title> </head> <body> <h3> 用户信息编辑页面 </h3> <form:form modelAttribute = "user" method = "post" action = "/elastic/f/edit.do" > <table> <tr> <td> 姓名: </td> <td><form:input path = "username" /></td> </tr> <tr> <td> 性别: </td> <td> <form:radiobutton path = "sex" value = "男" label = "男" /> <form:radiobutton path = "sex" value = "女" label = "女" /> </td> </tr> <tr> <td> 生日: </td> <td><form:input path = "birthday" /></td> </tr> <tr> <td> 爱好: </td> <td><form:checkboxes items = "${webList}" path = "favorite" /></td> </tr> <tr> <td colspan = "2" > <input type = "submit" value = "提交变更" /> </td> </tr> </table> </form:form> </body> </html><%-- Created by IntelliJ IDEA . User : chengyq Date : 2018 / 9 / 3 Time : 14 : 27 To change this template use File | Settings | File Templates . -- %> <%@ page language = "java" contentType = "text/html; charset=UTF-8" pageEncoding = "UTF-8" %> <% @taglib uri = "http://www.springframework.org/tags/form" prefix = "form" %> <html> <head> <title> Title </title> </head> <body> <h2> 您提交的用户信息 </h2> <table> <tr> <td> Username </td> <td> ${username} </td> </tr> <tr> <td> Birthday </td> <td> ${birthday} </td> </tr> <tr> <td> Sex </td> <td> ${sex} </td> </tr> <tr> <td> favorite </td> <td> <% String [] favorite = ( String []) request . getAttribute ( "favorite" ); for ( String f : favorite ) { out . println ( f ); } %> </td> </tr> </table> </body> </html>
SpringMVC获取表单参数
以下几种方式只有在已搭好的SpringMVC环境中,才能执行成功!
一、首先,写一个登陆页面和一个Bean类
登陆页面
<%@ page language = "java" contentType = "text/html; charset=UTF-8" pageEncoding = "UTF-8" %> <!DOCTYPE html> <html> <head> <meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" > <title> yyx博客后台登录 </title> </head> <body> <form action = "${pageContext.request.contextPath}/user/login.do" method = "post" > <table> <tr> <td> 用户名: </td> <td><input type = "text" name = "userName" ></td> </tr> <tr> <td> 密码: </td> <td><input type = "password" name = "userPwd" ></td> </tr> <tr> <td colspan = "2" ><input type = "submit" value = "登陆" ></td> </tr> </table> </form> </body> </html>java实体类
package com . yyx . model ; public class User { private String userName ; private String userPwd ; public String getUserName () { return userName ; } public void setUserName ( String userName ) { this . userName = userName ; } public String getUserPwd () { return userPwd ; } public void setUserPwd ( String userPwd ) { this . userPwd = userPwd ; } }二、获取表单数据的方法
1、直接把表单的参数写在Controller相应的方法的形参中
注意:控制器中方法的形参String userName,String userPwd名称必须和登陆页面的name="userName",name="userPwd"相同
package com . yyx . controller ; import org . springframework . stereotype . Controller ; import org . springframework . web . bind . annotation . RequestMapping ; @Controller @RequestMapping ( "/user" ) public class UserController { @RequestMapping ( "/login" ) public String loginByUser ( String userName , String userPwd ) { System . out . println ( "userName is:" + userName ); System . out . println ( "userPwd is:" + userPwd ); return "success" ; } }2.通过HttpServletRequest接收
控制器中
String userName = request . getParameter ( "userName" ); String userPwd = request . getParameter ( "userPwd" );的参数名称必须和登陆页面的name="userName",name="userPwd"相同
package com . yyx . controller ; import javax . servlet . http . HttpServletRequest ; import org . springframework . stereotype . Controller ; import org . springframework . web . bind . annotation . RequestMapping ; @Controller @RequestMapping ( "/user" ) public class UserController { @RequestMapping ( "/login" ) public String loginByUser ( HttpServletRequest request ) { String userName = request . getParameter ( "userName" ); String userPwd = request . getParameter ( "userPwd" ); System . out . println ( "userName is:" + userName ); System . out . println ( "userPwd is:" + userPwd ); return "success" ; } }3.通过一个bean来接收
登陆页面的name="userName",name="userPwd"必须和Bean类的属性名称相同
package com . yyx . controller ; import org . springframework . stereotype . Controller ; import org . springframework . web . bind . annotation . RequestMapping ; import com . yyx . model . User ; @Controller @RequestMapping ( "/user" ) public class UserController { @RequestMapping ( "/login" ) public String loginByUser ( User user ) { System . out . println ( "userName is:" + user . getUserName ()); System . out . println ( "userPwd is:" + user . getUserPwd ()); return "success" ; } }4.利用js中ajax请求通过json数据接收
在页面中添加js代码
<script type = "text/javascript" src = "${pageContext.request.contextPath}/static/jquery-3.1.1.min.js" ></script> <script type = "text/javascript" > $ ( document ). ready ( function () { $ ( "#button_submit" ). click ( function () { var name = $ ( "#userName" ). val (); var pwd = $ ( "#userPwd" ). val (); var user = { userName : name , userPwd : pwd }; //拼装成json格式 $ . ajax ({ type : "POST" , url : "${pageContext.request.contextPath}/user/login.do" , data : user , success : function ( data ) { alert ( "成功" ); }, error : function ( e ) { alert ( "出错:" + e ); } }); }); }); </script>控制器中的代码和方法3中的相同。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
原文链接:https://blog.csdn.net/chengyuqiang/article/details/82348542
查看更多关于SpringMVC如何获取表单数据(radio和checkbox)的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did214508