2013-02-25 102 views
2

我提到了很多帖子,但仍无法解决此问题。org.springframework.web.servlet.PageNotFound - 找不到具有URI的HTTP请求的映射

enter image description here

我试图把这个CSS文件夹中的WEB-INF或视图中,文件夹以及。
但仍然风格不反映在视图页面。

这里是我的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

<?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

#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; 

    } 
} 

堆栈跟踪不是一个错误,但警告。

WARN:org.springframework.web.servlet.PageNotFound - 未发现HTTP请求与URI映射[/计算器/ <c:url value="css/ExpenseDetailsStyles.css" />]在DispatcherServlet的名为 'appServlet'

我认为有一些我的uri在查看页面时遇到了问题,我试着用不同的方式改变它。 任何人都可以请帮我改正uri并反映视图页面上的样式吗?
如果需要任何其他相关信息,请发表评论。

+0

您可能需要添加你所遇到的问题提供更多的信息?你可以附加你的注释控制器吗? – RoryB 2013-02-25 15:55:13

+0

你的问题到底是什么? – KyelJmD 2013-02-25 15:57:15

+0

@KyelJmD查看页面中的uri可能是错误的。我不知道什么是错的。在过去的一天里受到攻击。 – Freakyuser 2013-02-25 16:00:32

回答

6

您有以下

<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> 

映射一些资源到春节servlet的,但你没有任何控制器处理方法为他们服务了。您应该删除上述servlet-mapping s并将您的css资源置于/resources/cssjs资源中/resources/js。由于<mvc:resources>元素,Spring会知道从那里自动获取它们。

确保还要在HTML文件中更改脚本和CSS的硬编码位置。

而且,在这条线

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

使用双引号"。您可能还需要重构这个

<c:url>标签将会把值放入变量myvar那么这将是你的<link>标签可用。

你也需要这条线在你的JSP的顶部,告诉它你需要JSTL标签:

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

我已经删除了'css'和'js'的'servlet-mapping'。我有这个,''在html中。它是否正确? – Freakyuser 2013-02-26 07:17:05

+0

顺便说一下,我们讨论的'resources'是'src/main/webapp'中的'resources',而不是'src/main /',我说得对吗? – Freakyuser 2013-02-26 07:18:30

+0

我认为它应该是'并在'src/main/webapp'中 – 2013-02-26 13:34:12

0

在你上下文文件,添加以下内容:

<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" /> 

这增加了一个静态的路径/资源/。只需将您的内容放在那里。

+0

谢谢你的回答,我已经在我的servlet-context.xml中有了它。我已经在上面发布了它。 – Freakyuser 2013-02-25 16:04:43

相关问题