Spring-Mvc(二)(增删改查、接收数据、跳转)

增删改查

这些代码都是需要在dao层实现的 ,然后在service层里面用dao去调用一个个方法将需要传输的数据return出去

public List<SysUserInfo> getUserList() {
		String sql = "select *from sys_user";
		return jdbctemplate.query(sql, new BeanPropertyRowMapper<SysUserInfo>(SysUserInfo.class));
	}

查询操作,返回一个 RowMapper类型的list

public void insertUserInfo(SysUserInfo su) {
		String sql = "insert into sys_user(user_name,passwd,salt,real_name,avatar,phone,email,gender,locked,create_time) values(?,?,?,?,?,?,?,?,?,now())";
		jdbctemplate.update(sql,su.getUserName(),su.getPasswd(),su.getSalt(),su.getRealName(),su.getAvatar(),su.getPhone(),su.getEmail(),su.getGender(),0);
	}

插入操作

public void alter(SysUserInfo su) {
		String sql = "update sys_user set user_name=?,real_name=?,passwd=?,phone=?,email=?,gender=? where user_id=? ";
		jdbctemplate.update(sql,su.getUserName(),su.getRealName(),su.getPasswd(),su.getPhone(),su.getEmail(),su.getGender(),su.getUserId());
	}

修改操作

public void del(int userId) {
		String sql = "delete from sys_user where user_id=?";
		jdbctemplate.update(sql,userId);
	}

删除操作

隐藏自己的真实路径

可以在前端控制器所包含的那个xml配置文件中(也就是说配置视图解析器的xml文件)我们可以通过mvc标签修改访问路径 但是这个xml配置文件头部一定要将mvc标签包含进去

<mvc:view-controller path="/userAdd" view-name="user/add"/>

view-name 也就是我们在controller里面的那个返回值,视图解析器也起作用,我们只需要写出中间部分即可

接收数据

一定要注意配置过滤器,否则传递的数据会乱码也可以直接在web的xml配置文件中配置字符的过滤器

	<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
	</filter>
1.通过HttpServletAPI原生对象接收数据(也就是HttpServletRequest和HttpServletResponse或者HttpServletSession等等)
		通过这种方法获取的时候需要在参数声明
public String add(HttpServletRequest request) {
		String name = request.getParamter("name");
		}

然后便可以在这个方法中去获得参数

2.@RequestPara注解方式(这个是要加在参数里面的,并且会自动将我们的类型转换)

> 通过@RequestParam 获取用户提交的参数,
	 参数name 和 value表示 提交数据属性名称
	  required,当required为true, 用户没有提交对应的属性值,则会报异常
	  defaultValue:通过defaultValue  可以为变量设置默认值 
	  当变量名与提交的数据属性名相同时,可以省略@RequestParam,
	  spring mvc 会将数据类型自动转换。

	public String add(@RequestParam("userName") String Name,@RequestParam("age") int age) {
		System.out.println("传递的名字" + Name);
		System.out.println("传递的年龄" + age);
		return "ok";	
	}

如果说,你在参数里面写了几个传入的参数,那么你的jsp页面提交的时候所需要传入的参数不能为空,一定要有值。否则页面会报错400
我们可以设置默认值 防止未传值报错,也就是当传入为空或者为null时 该属性便是默认值。

@RequestParam(value="userName",defaultValue="zcc") String Name

当我们不提交的时候,这时候 Name就是zcc
在采用这种方法的时候,其实注解是可以省略掉的,传输的数据直接传入参数就行,但是!!! 传入的时候参数的属性名一定要与jsp页面的name属性值相同

public String add(String userName, int age)

3.封装成一个javaBean对象传入进来

public String add(UserInfo us) {
		System.out.println(us);
		return "ok";
	}

UserInfo里面的属性名和jsp标签中的name属性值相同

跳转

这里是引用

@RequestMapping("/del")
	public String del(SysUserInfo us) {
		userService.del(us.getUserId());
		return "redirect:list";
	}
	
	@RequestMapping("list")
	public String list(Map<String,Object> map) {
		map.put("userList", userService.getUserList());
		return "user/list";
	}
	

在打开del 的时候,在删除完成后,会跳转到list链接里面去如果要跳到另外一个控制器(也就是另外一个Controller类)的时候,多加一个controller的路径即可 也就是redirect:路径/list。也就是response.sendRedirect(“path”)

return "forward:list";

这里是服务器端跳转方式相当于request.getRequestDispatcher(“path”).forward(request, response);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值