SpringMVC_03参数绑定

无疑的是在web中,有时候会进行参数的传递,常见的参数传递有在URL地址栏中进行,在Servlet中可以通过request.getParameter()这种方式来进行获取参数的值,其存在着一定的缺陷,如果需要传递的参数比较多,或者说传递的参数类型比较复杂(引用数据类型),在进行参数的传递就会比较的复杂。SpringMVC中的参数传递就比较的方便,接下来介绍几种常见的参数传递的方式

普通类型参数绑定

对于普通参数的传递存在两种情况

1)参数名称与Controller中的方法名称相同时

例如:页面中请求的参数名为name,在方法中的参数名也为name,则可以直接得到这个参数的值

2)参数名称与Controller中的方法名称相同时

例如:页面中请求的参数名为name,在方法中的参数名为userName,则通过在方法中加入注解则可以解决

注:在下面这个例子中就把name绑定为userName

@RequestMapping("/reg3.action")
	public String reg3(@RequestParam(value="name")String userName,@RequestParam(value="password")String pwd) {
		System.out.println(userName+","+pwd);
		return "result";
	}

对象类型绑定

普通对象类型

name的名称必须与bean中的属性名称相同,这样才会直接与对象进行绑定,在方法中就可以得到这个对象的值了

例如:

<form action="reg4.action" method="post">
		姓名 :<input type="text" name="userName"/>    <!--在User类中的属性名称为userName-->
		密码:<input type="password" name="password">
		<button type="submit">注册</button>
	</form>

在方法中可以直接得到传递的这个对象

@RequestMapping("/reg4.action")
	public String reg4(User user) {
		System.out.println(user.getUserName()+","+user.getPassword());
		return "result";
	}

VO对象类型

VO对象就是指一个对象中包含另外一个或者多个对象,一个对象创建以后,就会存在其他的对象属性

例如:

public class UserVO {
	private int id;
	private User user;

在这个UserVO类中既有自己的属性id,也有属性User,User为另外一个类

进行参数的传递的时候,如果是简单数据类型则直接写名称,如果是引用数据类型的话就用 对象名.属性名 进行赋值

例如:

<form action="reg5.action" method="post">
		id:<input type="text" name="id"/><br>
		姓名:<input type="text" name="user.userName"><br>
		密码:<input type="password" name="user.password"><br>
		<button type="submit">注册</button>
	</form>

在上面的表单中,明显id为UserVO中的简单数据类型,因此在就直接写属性名称,而userName为Use中的属性,而User又在UserVO中是它的一个属性,因此为userName赋值则为  user.userName.

List集合参数绑定

List集合如果不做类型限制的话,可以装多种数据类型,但大多数情况下List用来装多个对象,

在UserVO类中加入属性List

public class UserVO {
	private int id;
	private User user;
	private List<User> list;

在表单中进行参数的赋值

<form action="reg8.action" method="post">
		id:<input type="text" name="id"/><br>
		姓名:<input type="text" name="list[0].userName"><br>
		密码:<input type="password" name="list[1].password"><br>
		<button type="submit">注册</button>
	</form>

list[0]装的就是第一个User对象list[1]装的就是第二个User对象,在上面中就为第一个对象的userName赋值,第二个对象的password赋值

猜你喜欢

转载自blog.csdn.net/qq_40374295/article/details/81237631
今日推荐