SpringMVC学习4

InternalResourceViewResolver视图解析器默认使用的是JSTL解析器,要使用JSTL标签库需要导入JSTL的依赖。

<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

jsp页面导入jstl标签库:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
    <table border="1px" width="500px" cellspacing="0px">
        <tr>
            <td>userId</td>
            <td>username</td>
            <td>age</td>
            <td>sex</td>
            <td>createTime</td>
        </tr>

        <c:forEach items="${users }" var="user">
            <tr>
                <td>${user.userId }</td>
                <td>${user.username }</td>
                <td>${user.age }</td>
                <td>${user.sex }</td>
                <td>${user.createTime }</td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>



Controller代码:

@RequestMapping(value = "/test14")
public ModelAndView test14() {
	ModelAndView mv = new ModelAndView("users2");
	List<User> users = new ArrayList<User>();
	for (int i = 0; i < 10; i++) {
		User user = new User();
		user.setUserId(Long.valueOf(i));
		user.setUsername("user_" + i);
		user.setPassword("12345" + i);
		user.setSex(i % 2);
		user.setAge(20 + i);
		user.setCreateTime(new Date());
		user.setUpdatedTime(user.getCreateTime());
		users.add(user);
	}
	mv.addObject("users", users);
	return mv;
}

测试结果:



@ResponseBody:将响应的数据以json格式返回。

示例:
Controller代码:
@RequestMapping("/test15")
@ResponseBody    // 将数据以json格式返回
public List<User> test15() {
	List<User> users = new ArrayList<User>();
	for (int i = 0; i < 10; i++) {
		User user = new User();
		user.setUserId(Long.valueOf(i));
		user.setUsername("user_" + i);
		user.setPassword("12345" + i);
		user.setSex(i % 2);
		user.setAge(20 + i);
		user.setCreateTime(new Date());
		user.setUpdatedTime(user.getCreateTime());
		users.add(user);
	}
	return users;
}

测试:浏览器访问,查看返回结果


通过以上测试可以得知,@ResponseBody注解可以将返回的结果进行json序列化。


Jackson:json处理工具包
添加maven依赖:
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.7.4</version>
</dependency>

原理:
        当一个处理请求的方法标记为@ResponseBody时,就说明该方法要输出其它视图(json、xml),SpringMVC通过已定义的转化器做转发输出,默认输出json。





@RequestBody:可以将请求的json数据转化为POJO对象(和@ResponseBody相反)。

示例:



/**
 * 测试@RequestBody:将接收的json数据反序列化成User对象
 * 
 * @param user
 * @return
 */
@RequestMapping("/test17")
public ModelAndView test17(@RequestBody User user) {
    ModelAndView mv = new ModelAndView("hello");
    mv.addObject("msg", "user=" + user);
    return mv;
}

测试结果:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值