java框架(2.4)页面的渲染

  • • 发表于 7年前
  • • 作者 大妖怪
  • • 2804 人浏览
  • • 0 条评论
  • • 最后编辑时间 7年前
  • • 来自 [技 术]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

之前讲过@RequestBod注解,该注解主要是返回给前端一个json格式的字符串。如果我们不加这个注解则会包一个404的错,404的错主要就是说页面找不到或者方法找不到,很显然,在这应该是页面找不到的意思,怎么找到这个页面呢?这就是今天要讲的页面(也就是MVC中的V)的渲染。
还是在之前的工程,我们需要做点改动:

  • 在spring-servlet.xml文件中加入以下内容:

      <!--开启对静态资源的访问 -->
      <mvc:default-servlet-handler/>
    
      <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/pages/" p:suffix=".html" />
    
  • 然后在WEB-INF下建个文件夹‘pages’,然后在pages下建个文件index.html,html文件的的内容如下:
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
      我是主页
    </body>
    </html>
    
    
  • 然后新建个controller:PageControlerP,内容如下:

    @Controller
    @RequestMapping("/page")
    public class PageController {
    
      @RequestMapping("/index")
      public String index(){
    
          return "index";
      }
    }
    

    然后启动项目访问/page/index路径:

    看到的结果是成功访问了这个html页面,说明访问成功了。接下来就可以自己给html修改样式修改内容什么的了。

这么做的原理是什么呢?
首先,这个html文件是静态资源,比如css,js,图片等等都是静态资源文件,一般放在WEB-INF下,我们从外部访问WEB-INF是没有权限的,毕竟这里放了配置文件。但是这部分文件我们需要访问,于是我们使用<mvc:default-servlet-handler/>开启了访问权限,这是spring3.0.4提供的,在这之前更麻烦。开启了之后我们就需要渲染页面了。
页面一般是由org.springframework.web.servlet.view.InternalResourceViewResolver这个Resolver来渲染的,p:prefix参数是用来设置静态资源的文件, p:suffix参数用来设置静态资源的后缀,当我们普通的Controller返回一个String类型字符串的时候,InternalResourceViewResolver就会自动根据这个字符串,路径和后缀帮我们拼接一个地址(/WEB-INF/pages/字符串.html)然后去判断,如果存在就交给前端进行访问,如果不存在就返回404.当然,我们也可以将路径定义到别的地方,比如什么/WEB-INF/view,甚至是resource下都行,前提是定义好之后文件必须建在这,后缀也是一样,可以是静态页面html,还可以是动态页面jsp等等。动态页面只不过是后端执行之后生成的html给前端进行访问,原理是一样,对数据的操作和servlet差不多。

另外源码还是更新在github上上次的代码中,https://github.com/YaoguaiDa/SpringMVC_Demo.git

分享到:
0条评论
Ctrl+Enter
作者

大妖怪

大妖怪

APP:1 帖子:76 回复:200 积分:7517

已加入社区[2943]天

梦里巷口,可有你倚门回首

作者详情》
Top