No mapping found for HTTP request with URI [/demo/WEB-INF/view/index.html] in DispatcherServlet with name 'SpringMVC'

mhi 发布于 03/06 18:29
阅读 566
收藏 0

错误:[org.springframework.web.servlet.PageNotFound] - No mapping found for HTTP request with URI [/demo/WEB-INF/view/index.html] in DispatcherServlet with name 'SpringMVC'

 

web.xml配置文件配置:

<!-- Spring MVC servlet -->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

spring-mvc.xml配置文件:

<!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
    <context:component-scan base-package="com.soft.webapp.*.controller">
        <!-- 扫描符合@Controller的类 -->
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
    </context:component-scan>
    <!-- 扩充了注解驱动,可以将请求参数绑定到控制器参数 -->
    <mvc:annotation-driven />


    <!-- 定义跳转的文件的前后缀 ,视图模式配置 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/" />
        <property name="suffix" value=".html" />
    </bean>

 

 

我把web.xml中配置修改为

<servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

然后访问就没问题,求解?????????

加载中
0
mhi
mhi

结果本人不懈努力,解决以上问题,出现以上问题的原因是视图解析html文件必须配合freemark使用,才能解析出视图,jsp页面的话直接以上配置就能实现。以下是jsp与html多试图解析配置

<!-- 配置freeMarker的模板路径 -->
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath" value="/WEB-INF/view/common/" />
        <property name="freemarkerSettings">
            <props>
                <prop key="template_update_delay">1</prop>
                <prop key="defaultEncoding">UTF-8</prop>
                <prop key="url_escaping_charset">UTF-8</prop>
                <prop key="locale">zh_CN</prop>
                <prop key="boolean_format">true,false</prop>
                <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
                <prop key="date_format">yyyy-MM-dd</prop>
                <prop key="time_format">HH:mm:ss</prop>
                <prop key="number_format">0.##</prop>
                <prop key="whitespace_stripping">true</prop>
            </props>
        </property>
    </bean>

    <!-- 配置freeMarker视图解析器 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
        <property name="contentType" value="text/html; charset=utf-8" />
        <property name="cache" value="true" />
        <property name="redirectContextRelative" value="false" />
        <property name="suffix" value=".html" />
        <property name="order" value="1" />
        <property name="requestContextAttribute" value="request" />
        <property name="exposeRequestAttributes" value="true" />
        <property name="exposeSessionAttributes" value="true" />
        <property name="exposeSpringMacroHelpers" value="true" />
        <property name="allowSessionOverride" value="true" />
    </bean>
    <!-- jsp视图解析器视图解释类 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/jsp/" />
        <property name="suffix" value=".jsp" /><!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 -->
        <property name="order" value="1" />
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    </bean>
 

0
你不懂的吧
你不懂的吧

你把拦截的/*改成/,/*会把返回的页面也拦截的,*.do是同理,返回的页面不会拦截

mhi
mhi
回复 @你不懂的吧 : 我控制器很简单就是返回一个指定的html页面,是不是对.html结尾的路径,要做特殊的处理?以下是控制器代码 @GetMapping(value = "test") public String test(HttpServletRequest request, Model model) { return "login"; }
你不懂的吧
你不懂的吧
回复 @mhi : 你这个配置是没问题的 应该是别的地方写错了
mhi
mhi
回复 @你不懂的吧 : https://www.oschina.net/question/3145956_2305946 这个里面是配置文件的全部内容
你不懂的吧
你不懂的吧
回复 @mhi : 贴完整点的
mhi
mhi
回复 @你不懂的吧 : 试过了,不行。/*与/是一样的
下一页
返回顶部
顶部