(请参阅下面的更新)
我多年来一直在努力解决这个问题。
我正在关注John Purcival的Spring MVC框架教程。
我完全按照教程系列中的说明设置了DispatcherServlet
,Controller
和ViewResolver
,但是当我运行应用程序时,它会给我以下错误:< / p>
org.springframework.web.servlet.PageNotFound noHandlerFound
我已经经历了无数的StackOverflow问题,这些问题与同一个问题有关,但到目前为止,这些问题都没有对我有用。我现在在我的智慧结束了。
的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>spring-tutorial-50</display-name>
<servlet>
<description></description>
<display-name>offers</display-name>
<servlet-name>offers</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>offers</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
提供-servlet.xml中
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="com.me.spring.web.controllers">
</context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsps/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
OffersController.java
package com.me.spring.web.controllers;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class OffersController {
@RequestMapping("/")
public String showHome(HttpSession session) {
session.setAttribute("name", "Borris");
return "home";
}
}
/WebContent/WEB-INF/jsps/home.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Hi there!
Session: <%= session.getAttribute("name") %> <p/>
</body>
</html>
更新
我按照these步骤更改了服务器的deploy path
:
在Eclipse中,您可以将该部署文件夹更改为其他内容。
- 删除分配给tomcat的所有项目,或者您无法更改设置(右键单击服务器/添加和删除...)。
- 执行清理(右键单击服务器/清除...)。
- 双击服务器以打开配置页。
- 在服务器位置部分,选择&#34;使用自定义位置&#34;并指定您选择的文件夹作为服务器路径。你可以走了 &#34; wtpwebapps&#34;作为部署文件夹。我通常设置类似的东西 &#34; C:\ virtualTomcat&#34;作为服务器路径。
- 保存文件,另外清理并将项目添加回服务器(右键单击服务器/添加和删除...)。
我现在发现OfferController没有被编译;换句话说:
${serverDeploymentDirectory}/wtpwebapps/${projectName}/WEB-INF/classes/com/me/spring/web/controllers/
为空
答案 0 :(得分:0)
我可以通过完成以下步骤来解决此问题:
Properties -> Deployment Assembly
。从Deployment Assembly
Remove entry target/m2e-wtp/web-resources
点击Servers
标签。单击服务器名称左侧的小箭头。这将显示已部署项目的列表。右键单击相关项目,然后选择Clean Module Work Directory
选择项目的根目录。在工具栏中,选择Project-Clean
右键单击项目的根目录。 Run As -> Run on server