springMVC--多视图

springMVC多视图

多视图官方文档



官方文档解析



编写自己的多视图

1、配置约定访问的url:web.xml
 <servlet-mapping>
  <servlet-name>springmvc</servlet-name>
  <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>

2、配置多视图:springmvc.xml
<!-- 配置多视图支持 -->
	<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
		<!-- 配置支持的媒体类型 -->
		<property name="contentNegotiationManager">
			<bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
				<!-- 配置媒体类型 -->
				<property name="mediaTypes">
					<!-- 使用map配置多个媒体类型 -->
					<map>
						<entry key="json" value="application/json"></entry>
						<entry key="xml" value="application/xml"></entry>
					</map>
				</property>
			</bean>
		</property>
		
		<!--指定默认视图  -->
		<property name="defaultViews">
			<!-- 支持多个视图 -->
			<list>
				<!-- 对json格式视图支持 -->
				<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"></bean>
				<!-- 对xml格式视图支持 -->
				<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
					<constructor-arg>
						<!-- 需要导入spring的oxm jar包 -->
						<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
							<property name="classesToBeBound">
								<list>
									<value>cn.caixia.domain.User</value>
								</list>
							</property>
						</bean>
					</constructor-arg>
				</bean>
			</list>
		</property>
	</bean>
	

3、配置javabean
@XmlRootElement  //必须是jdk1.6以上
public class User {
    private Integer id;

    private String username;

    private Date birthday;

    private String sex;

    private String address;

4、定义Controller
	//多视图支持
	@RequestMapping("multiView")
	public User multiView(){
		User user1 = new User();
		
		user1.setId(1);
		user1.setSex("男");
		user1.setUsername("张无忌");
		user1.setAddress("武当山");
		user1.setBirthday(new Date());
		return user1;
		
	}
	
	

访问

根据官方文档约定:访问需要加上响应的扩展名。获取json格式的数据需要加上json扩展名,访问html格式的,需要加上html的扩展名。

访问xml格式的需要加上xml的扩展名。

根据我们web.xml文件的访问约定:扩展名.do是访问jsp页面的。

那么我们访问json格式和xml数据格式访问形式如下:








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值