org.springframework.web.servlet.PageNotFound-找不到带有URI的HTTP请求的映射 [英] org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI

查看:78
本文介绍了org.springframework.web.servlet.PageNotFound-找不到带有URI的HTTP请求的映射的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我提到了很多帖子,但仍然无法解决这个问题.

I referred to many posts but still I was unable to solve this problem.

我曾尝试将此css文件夹放在WEB-INF中,也放在views文件夹中.
但是样式仍然没有反映在视图页面中.

I have tried putting this css folder in WEB-INF and within views folder as well.
But still the styles are not reflected in the view page.

这是我的servlet-context.xml

Here is my servlet-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <resources mapping="/resources/**" location="/resources/" />

    <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>

    <context:component-scan base-package="ctc.event.control" />

</beans:beans>

这是我的web.xml

This is my web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/root-context.xml</param-value>
    </context-param>

    <!-- Creates the Spring Container shared by all Servlets and Filters -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- Processes application requests -->
    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

这是我的样式表ExpenseDetailsS​​tyles.css

This is my style sheet ExpenseDetailsStyles.css

#ItemDiv1_Table1 {
    border: 1px solid black;
}

#ItemDiv1Table2 {
    width: 20%;
    float: right;
    font-size:30px;
}

和我的查看页面.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ include file="TagIncludes.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Expense Details</title>
<link href='<c:url value="/resources/css/ExpenseDetailsStyles.css" />' rel="stylesheet" type="text/css" media="screen" />
<script type='text/javascript' src="../js/jquery-1.9.0.js"></script>
<script type="text/javascript"></script>
</head>
<body>
    <form:form name="ExpenseDetails" method="Post"
        action="ExpenseDetailsForm.html">
        <div id="ItemDiv1">
            <table>
                <tr>
                    <td>
                        <table id="ItemDiv1_Table1">
                            <tr>
                                <td>Item</td>
                                <td><input type="text" name="Item1" id="Item1" required /></td>
                            </tr>
                            <tr>
                                <td>Expense in Rs</td>
                                <td><input type="text" name="ItemValue1" id="ItemValue1" ></td>
                            </tr>
                        </table>
                    </td>
                    <td>
                        <table id="ItemDiv1_Table2">
                            <tr>
                                <td>Edit</td>
                            </tr>
                        </table>
                    </td>
                </tr>
            </table>
        </div>
    </form:form>
</body>
</html>

这是控制器

@Controller
public class ExpenseFormController {

    @RequestMapping(value = "/ExpenseDetailsForm.html", method = RequestMethod.GET)
    public String openForm() {
        return "ExpenseDetailsForm";

    }

    @RequestMapping(value = "/ExpenseDetailsForm.html", method = RequestMethod.POST)
    public String submitForm() {
        return null;

    }
}

stacktrace不是错误而是警告.

stacktrace is not an error but a warning.

WARN:org.springframework.web.servlet.PageNotFound-找不到带有URI [/Calculator/< c:url value ="css/ExpenseDetailsS​​tyles.css"/> ]在DispatcherServlet中,名称为"appServlet"

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/Calculator/<c:url value="css/ExpenseDetailsStyles.css" />] in DispatcherServlet with name 'appServlet'

我认为我的uri在查看页面中存在一些问题,我尝试以许多不同的方式进行更改.任何人都可以帮助我纠正uri并在视图页面上反映样式吗?
如果需要其他任何相关信息,请发表评论.

I think there is some problem with my uri in the view page and I tried changing it in many different ways. Can anyone please help me correct the uri and reflect the styles on the view page?
Please comment if any other information pertaining this, is needed.

推荐答案

您具有以下

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>

将一些资源映射到Spring servlet,但是您没有任何控制器处理程序方法来提供这些资源.您应该删除上面的 servlet-mapping s并将 css 资源放在/resources/css js 资源中在/resources/js 中.由于< mvc:resources> 元素,Spring会知道从那里自动获取它们.

mapping some resources to the Spring servlet but you don't have any controller handler methods to serve them up. You should remove the above servlet-mappings and put your css resources in /resources/css and js resources in /resources/js. Spring will know to get them automatically from there because of the <mvc:resources> element.

确保还更改html文件中脚本和css的硬编码位置.

Make sure to also change the hard-coded location of your scripts and css in html files.

此外,在此行

<link href='<c:url value="/resources/css/ExpenseDetailsStyles.css" />' ... />

使用双引号".您可能还想对此进行重构

use double quotes ". You might also want to refactor to this

< c:url> 标记会将值放入变量 myvar 中,该变量随后将在您的< link> 标签.

The <c:url> tag will put the value into the variable myvar which will then be available in your <link> tag.

此外,您还需要在jsp的顶部显示这一行,以告知您需要jstl标记:

Also you need this line at the top of your jsp to tell it you need jstl tags:

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

这篇关于org.springframework.web.servlet.PageNotFound-找不到带有URI的HTTP请求的映射的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆