SpringMVC视图解析器

本文记录Java学习过程中遇到的SpringMVC视图解析器~

视图解析器使用SpringMVC框架默认的InternalResourceViewResolver,这个视图解析器支持JSP视图解析。

示例代码(springmvc.xml):

<!-- Example: prefix="/WEB-INF/jsp/", suffix=".jsp", viewname="test" -> 
	"/WEB-INF/jsp/test.jsp" -->
<!-- 配置视图解析器 -->
<bean
	class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<!-- 配置逻辑视图的前缀 -->
	<property name="prefix" value="/WEB-INF/jsp/" />
	<!-- 配置逻辑视图的后缀 -->
	<property name="suffix" value=".jsp" />
</bean>

逻辑视图名需要在controller中返回ModelAndView指定,比如逻辑视图名为ItemList,则最终返回的jsp视图地址为“WEB-INF/jsp/itemList.jsp”。即最终jsp物理地址:前缀+逻辑视图名+后缀。

示例代码(ItemController):

// @RequestMapping:里面放的是请求的url,和用户请求的url进行匹配
// action可以写也可以不写
@RequestMapping("/itemList.action")
public ModelAndView queryItemList() {
	// 创建页面需要显示的商品数据
	List<Item> list = new ArrayList<>();
	list.add(new Item(1, "1华为 荣耀8", 2399, new Date(), "质量好!1"));
	list.add(new Item(2, "2华为 荣耀8", 2399, new Date(), "质量好!2"));
	list.add(new Item(3, "3华为 荣耀8", 2399, new Date(), "质量好!3"));
	list.add(new Item(4, "4华为 荣耀8", 2399, new Date(), "质量好!4"));
	list.add(new Item(5, "5华为 荣耀8", 2399, new Date(), "质量好!5"));
	list.add(new Item(6, "6华为 荣耀8", 2399, new Date(), "质量好!6"));

	// 创建ModelAndView,用来存放数据和视图
	ModelAndView modelAndView = new ModelAndView();
	// 设置数据到模型中
	modelAndView.addObject("itemList", list);
	// 设置视图jsp,需要设置视图的物理地址
	// modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");
	// 配置好视图解析器前缀和后缀,这里只需要设置逻辑视图就可以了。
	// 视图解析器根据前缀+逻辑视图名+后缀拼接出来物理路径
	modelAndView.setViewName("itemList");

	return modelAndView;
}

标签: none