您的位置:首页 > 编程语言 > Java开发

springmvc 使用InternalResourceViewResolver解析URL文件

2016-04-13 21:40 507 查看
最常用的URL文件应该就是我们的jsp页面了,InternalResourceViewResolver解析器可以解析该资源,配置如下

<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>


prefix和suffix属性可以指定资源页面的前缀和后缀,可以直接把资源位置定位到项目的/WEB-INF/下面。InternalResourceViewResolver默认是使用了InternalResourceView作为视图的实现类,如果你想使用JSTL标签的一些功能的话,例如使用这个,那就需要用JstlView来替换InternalResourceView了,具体的配置如下

<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
<property name="viewClass" value = "org.springframework.web.servlet.view.JstlView"></property>
</bean>


下面举个例子,演示怎样把后台数据带到前端的jsp页面

@RequestMapping(value = { "", "/" })
public String  whatPage(ModelMap modelMap) {

List<Task> tasks = new ArrayList<Task>();

Task t = new Task();
t.setCreateTime(new Date());
t.setTaskDetail("taskDetail");
t.setTaskName("taskName");

Task t1 = new Task();
t1.setCreateTime(new Date());
t1.setTaskDetail("taskDetail1");
t1.setTaskName("taskName1");

tasks.add(t1);
tasks.add(t);

modelMap.addAttribute("tasks", tasks);

return "task/task";
}


InternalResourceViewResolver会把返回值”task/task”加上配置好的前缀和后缀作为jsp视图的url路径,就像这样”WEB-INF/jsp/task/task.jsp”

前端我们新建一个tasks.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html >
<html>
<head>
<meta charset="UTF-8">
<title>任务测试页</title>
</head>
<body>

<h1>hello task !!</h1>

<table>

<table>
<c:forEach items="${tasks}" value="task">
<tr>
<td>${task.taskName}</td>
<td>${task.taskDetail}</td>
<td><fmt:formatDate value = ${task.createTime } pattern = "yyyy-MM-dd" /></td>
</tr>
</c:forEach>
</table>
</table>

</body>
</html>


springmvc把模型数据直接放在httpServletRequest里面,通过request.addAttribute(key,value)放进去,会话级别@SessionAttributes是直接把数据放在httpSession里面,也是通过addAttribute(key,value)方法进行添加,在前段的jsp拿数据就直接${…}

jsp页面除了可以使用jstl的标签之外,springmvc也提供一个标签库,我们也可以直接在jsp文件中使用这个库,直接在jsp引入标签库

<%@ taglib prefix = "form" uri = "http://www.springframework.org/tags/form"%>


其实在实际开发中,我们很少用到spring这种标签库,jstl标签库,也一般是在保存和更新页面的时候简单使用core标签库,所以这里就不去举例子讲spring 标签库的用法了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: