springMVC ---- 能够同时返回 jsp 或者 HTML

package com.as.util;

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

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

/**
 * 配置返回页面 .jsp
 * 如果返回页面是 .html ,就需要使用此类
 * @author MING
 * @date 2018/4/23 16:52
 */
public class HtmlResourceView extends InternalResourceView {
    
    
    @Override
    public boolean checkResource(Locale locale){
        File file=new File(this.getServletContext().getRealPath("/")+getUrl());
        return file.exists(); //判断页面是否存在
    }
}
   <!--配置jsp 显示ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="com.as.util.HtmlResourceView"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
        <property name="order" value="0"/>
    </bean>

    <!-- 视图解析器2:html视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="suffix" value=".html"/>
        <property name="order" value="1"/>
        <property name="contentType" value="text/html;charset=UTF-8"/>
    </bean>

这里需要注意的一点就是
InternalResourceView 可以看一下这个源码,基本上这个一看你就懂了https://blog.csdn.net/king_is_everyone/article/details/51498369

 <property name="prefix" value="/WEB-INF/jsp/"/>

这一个路径,你页面对应的路径。因为你页面是经过后台处理进行跳转的,所以这里的路径需要对应就可以了

猜你喜欢

转载自blog.csdn.net/qq_38637558/article/details/82110553
今日推荐