springmvc 使用InternalResourceViewResolver解析URL文件

不问归期 提交于 2019-11-29 08:25:55

最常用的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>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!