整合前端页面到SSM框架之四号坑controller返回静态页面

上回说到的controller加载静态资源页面是

将资源链接发送到spring-MVC的dispatcher 进行处理返回静态资源,

而这一次是要当controller 进行return 时,要将需访问的静态页面return 给浏览器。

往常return jsp页面时,因为设置过jsp的视图解析器,可以直接return jsp 的名字如下图

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="viewResolver">
        <!--<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>-->
        <property name="order" value="1"/>
        <property name="prefix" value="/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
/*返回注册页面*/
    @RequestMapping("/register")
    public String jump(){
        return "index";
    }

而之后

当index指的是一个存在于statics文件夹下的html文件下,我们就会发现问题出现了,返回的地址是/jsp/index.jsp。如果我们硬改地址成/statics/index.html 也会变成 /jsp//statics/index.html.jsp

唯一的解法就是增加html的视图解析器

 这里我参考了这篇博文:https://blog.csdn.net/dknightl/article/details/80256802

-------------以下是转发------------------------------------

第一步:继承InternalResourceView,写解析类

package com.ssm.hui.util;//这是你的包名  跟

import java.io.File;
import java.util.Locale;

import org.springframework.web.servlet.view.InternalResourceView;

/** 
 * @author hui 
 * @date 创建时间:2018年5月9日 下午5:26:55 吴清辉新建
 * @version 1.0 
 **/
public class HtmlResourceView extends InternalResourceView {
    @Override  
    public boolean checkResource(Locale locale) {  
     File file = new File(this.getServletContext().getRealPath("/") + getUrl());  
     return file.exists();// 判断该页面是否存在  
    }
}

第二步:配置xml

<!-- 定义HTML文件的位置 -->  
     <bean id="htmlviewResolver"    
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">   
        <property name="viewClass" value="com.ssm.hui.util.HtmlResourceView"/><!-- 改成你自己的第一步新建的解析类路径 -->  
        <property name="order" value="0" />  
        <!-- 前缀 -->
		<property name="prefix" value="/WEB-INF/content/" />
        <property name="suffix" value=".html" />    
    </bean> 
		<!-- 定义JSP文件的位置 -->  
	<bean id="jspViewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
		<property name="order" value="1" />  
		<!-- 前缀 -->
		<property name="prefix" value="/WEB-INF/content/" />
		<!-- 后缀 -->
		<property name="suffix" value=".jsp" />
	</bean>

=================以上是 转发=======================

虽然照上面改之后没有报错,但跳转到index页面依然不成功,后来就如上面的代码一样将

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />注释掉并重启了下服务器,就ok了。

对了,property 为 order的是值越大,优先级越低。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值