SpringMVC第8讲:多视图支持

对JSON视图和XML等视图的支持

源代码

https://download.csdn.net/download/qzc70919700/19931167

一、导入jar包

二、配置springmvc.xml支持多视图

<!-- 添加对多视图的支持 -->
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
	<!-- 配置支持媒体类型 -->
	<property name="contentNegotiationManager">
		<bean
				class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
			<property name="mediaTypes">
				<map>
					<entry key="json" value="application/json"></entry>
					<entry key="xml" value="application/xml"></entry>
				</map>
			</property>
		</bean>

	</property>

	<!-- 指定默认视图 -->
	<property name="defaultViews">
		<!-- 支持多个视图 -->
		<list>
			<!-- 对josn格式视图支持 -->
			<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"></bean>

			<!-- xml格式视图支持 -->
			<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
				<constructor-arg>
					<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
						<property name="classesToBeBound">
							<list>
						            <value>demo.mvc.entity.User</value>
							</list>
						</property>
					</bean>
				</constructor-arg>
			</bean>
		</list>
	</property>
</bean>

三、Controller代码

package demo.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import demo.mvc.entity.User;

@Controller
@RequestMapping("/test")
public class TestController {

	@RequestMapping("t1")
	public User test1() {
		User user = new User("张三", "男", 18);
		return user;
	}
}

四、浏览器访问

约定rest目录下所有以json和xml扩展名都支持相应的视图

访问xml视图

在对xml视图的支持时,需要对实体添加@XmlRootElement注解,例如:

@XmlRootElement
public class User {
    private String username;
    private String sex;
    private int age;
    //省略getter和setter方法
}

测试:

http://localhost:8080/mvc_demo06/rest/test/t1.xml

访问json视图

测试:

http://localhost:8080/mvc_demo06/rest/test/t1.json

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值