Я создал простой пружинный MVC приложение без использования каких-либо сборки инструментов, как Maven или муравей в затмении EE IDE404 Ошибка в приложении Spring MVC
Приложение состоит только из одного класса контроллера, 2 XML-х (web.xml
и spring-servlet.xml
) и страница jsp (hellopage.jsp
)
Я использую tomcat и 6.0 eclipse galileo.
В моем spring-servlet.xml
файл я упомянул <servlet-name>
как «Весна» и <servlet-class>
как org.springframework.web.servlet.DispatcherServlet
, <url-pattern>
в *.html
, в то время как в моем web.xml
файл приветствия файла index.jsp
, который имеет связь (<a href="hello.html">click</a>
) к hello.html
.
Мой класс контроллера имеет запрос отображение как ("/hello"
), когда в браузере после развертывания войны файл моего приложения я ударил URL localhost:8080/projectname
index.jsp
страница выскакивает со ссылкой "click"
, но после нажатия на эту ссылку, я получаю a ошибка упоминания «пружина сервлета недоступна» означает сервлет диспетчера, о котором я упоминал в файле spring-servlet.xml
, пожалуйста, кто-нибудь может помочь?
Вот код:
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">
<display-name>SpringMVC</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
HelloWorldController.java:
package com.samar.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloWorldController {
@RequestMapping("/hello")
public ModelAndView helloworld()
{
String message ="Hello spring MVC...!!";
return new ModelAndView("hellopage","message",message);
}
}
весна-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation ="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">
<context:component-scan base-package="com.samar.controllers"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
index.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>
<a href="/hello.html">Click</a>
</body>
</html>
hellopage.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>
Message is ${message}
</body>
</html>
Намного проще для всех отлаживать (включая себя), если вы публикуете код – smoggers
Добро пожаловать в StackOverflow! Пожалуйста, прочитайте нашу страницу [ask], чтобы помочь вам сформулировать большой вопрос. Вы, скорее всего, получите хороший ответ от сообщества, если приложите некоторые усилия в свой вопрос. – ochi
От взгляда на ваш html, который вы опубликовали, может случиться так, что файл hello.html не может быть найден, потому что вам нужно предоставить ему полное местоположение ресурса, то есть как это href = "$ {pageContext.request.contextPath}/hello.html» – smoggers