springMVC--封装参数及页面回显

封装参数

注意:springmvc没有成员变量,把需要传递的参数对象放入方法中,当你请求这个方法的时候,

这个方法里面的对象会自动被创建,需要封装的参数自动被封装到方法的对象中

分析接受参数类型:

基本类型,int,String等等基本类型。

Pojo类型

包装类型

Springmvc默认支持类型:

HttpSession,HttpRequstServlet,Model等等。

Struts2参数:基于属性封装。

Springmvc参数封装:基于方法进行封装。


一、基本类型

1、页面:
ID:

2、方法:
@Controller//
@RequestMapping("/user")
public class UserController {
	
	
	//跳转到add页面
	@RequestMapping("toAdd")
	public String toAdd(){
		
		return "add";
	}
	
	//接受int类型参数
	@RequestMapping("recieveInt")
	public String recieveInt(Integer id){
		
		System.out.println(id);
		
		return "success";
		
	}

springmvc.xml:


		
		
		
		
		
		
		
		
		
		
		
		
		
		
				
		
		

二、字符串类型

1、页面
姓名:

2、方法
//接受字符类型参数
	@RequestMapping("recieveStr")
	public String recieveStr(String username)
	{
		
		System.out.println(username);
		return "success";
	}

success.jsp:

接受参数成功


三、数组类型

分析:批量删除:checkbox复选框。Value必须有值。

1、页面
ID: ID: ID:

2、方法
//接受数组类型参数
	@RequestMapping("recieveArray")
	public String recieveArray(Integer[] ids){
		
		System.out.println(ids);
		
		return "success";
	}

四、pojo类型

User:
public class User {
	
	private Integer id;
	private String username;
	private Date birthday;
	private String sex;
	private String address;

1、页面
姓名: 生日: 性别: 地址:

2、方法
//接受参数封装User对象
	@RequestMapping("recieveUser")
	public String recieveUser(User user){
		
		System.out.println(user);
		
		return "success";
	}

五、包装类型

UserCustomer:
public class UserCustom {
	
	private User user;

1、页面
姓名: 生日: 性别: 地址:

2、方法
//接受包装类型参数
	@RequestMapping("recieveUserCustom")
	public String recieveUserCustom(UserCustom userCustom){
		
		System.out.println(userCustom);
		
		return "success";
	}

六、集合类型

方法体里不能直接传递list集合和map集合类型的参数

把list集合和map集合封装到包装类中

UserCustomer:

public class UserCustom {
	
	private User user;
	
	private List userList;
	
	private Map maps = new HashMap();

接受list集合:
1、页面
姓名: 地址: 姓名: 地址:

2、方法
//接受集合类型参数
	@RequestMapping("recieveList")
	public String recieveList(UserCustom userCustom){
		
		System.out.println(userCustom);
		
		return "success";
	}
		

接受map集合:
1、页面
姓名: 地址:

2、方法
//接受集合类型参数
	@RequestMapping("recieveMap")
	public String recieveMap(UserCustom userCustom){
		
		System.out.println(userCustom);
		
		return "success";
	}

有了struts2,为什么还需要sprigmvc?

实现机制:

Struts2是基于过滤器实现的。

Springmvc基于servlet实现。Servlet比过滤器快。

 

运行速度:

Struts2是多例

请求来了以后,struts2创建多少个对象:

ActionContext,valuestack,UserAction,ActionSuport,ModelDriven

userAction里面属性:User对象,userlist集合等

 

Springmvc是单例。

 

参数封装来分析:

Struts基于属性进行封装。

Springmvc基于方法封装。颗粒更细

 

小明访问了n次这个类

N个UserAction,n个actionSupport,n个modelDriver,n个user,n个list,n个actionContext

N个valueStack等

Public Class userAction extendsActionSupport implements ModelDriven{

Private user = new user();

Private List list;

 

}

一个,如果访问方法,只需要创建方法里面的几个对象,对象是局部变量,使用完毕后就销毁。

Public class userController(){}


页面回显

Springmvc使用model对象,model对象相当于application

Application对象中的数据可以使用el表达式进行获取

方法里面的对象会自动被创建,所以把model放到方法中


查询所有:
@RequestMapping("list")
	public String list(Model model){
		//model	相当于application域对象
		
		List userList = new ArrayList();
		
		User user1 = new User();
		user1.setId(1);
		user1.setSex("男");
		user1.setUsername("张山峰");
		user1.setAddress("武当山");
		user1.setBirthday(new Date());
		
		User user2 = new User();
		user2.setId(2);
		user2.setSex("男2");
		user2.setUsername("张山峰222");
		user2.setAddress("武当山222");
		user2.setBirthday(new Date());
		
		User user3 = new User();
		user3.setId(3);
		user3.setSex("男3");
		user3.setUsername("张山峰333");
		user3.setAddress("武当山333");
		user3.setBirthday(new Date());
		
		userList.add(user1);
		userList.add(user2);
		userList.add(user3);
		
		model.addAttribute("userList", userList);
		
		return "list";
		
	}

页面获取:


	
姓名 生日 性别 地址 操作
${user.username } ${user.birthday } ${user.sex } ${user.address } 修改

修改:
	//修改
	@RequestMapping("updateByID")
	public String updateByID(Integer id,Model model){
		User user1 = new User();
		user1.setId(id);
		user1.setSex("男");
		user1.setUsername("张山峰");
		user1.setAddress("武当山");
		user1.setBirthday(new Date());
		
		model.addAttribute("user", user1);
		
		return "edit";
	}

回显:edit.jsp:

姓名:
生日:
性别:
地址:



你可能感兴趣的:(JavaEE,springmvc)