【发布时间】:2015-01-29 15:54:13
【问题描述】:
好的,我知道这里有 20 个帖子有同样的问题,但似乎没有一个对我有帮助,所以这可能是重复的,但我已经浏览了所有其他帖子,但没有一个解决我的问题,所以一定是我做错了,或者我没有对前面提到的问题的答案进行正确的修改。
我正在尝试使用 Spring 制作一个小型应用程序,我仍在尝试使用它,但我花了大约 4 天的时间试图找出问题所在,但我无法解决。每当我尝试从控制器取回 jsp 时,我仍然会收到 HTTP 状态 404。只有通过 Tomcat 的 404 状态,没有别的......
WebAppController:
@Controller
public class WebAppController {
@RequestMapping(value="/login", method = RequestMethod.GET)
public String login() {
System.out.println("You have entered the login maprequest");
return "test1";
}
}
web.xml:
<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"
version="2.5">
<display-name>Hotel Application</display-name>
<servlet>
<servlet-name>WebApp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebApp</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
webApp.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:component-scan base-package="com.iquestgroup" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
此配置适用于一个简单的 maven 项目,其中仅包含上述内容。问题是,完全相同的事情在具有 3 个模块(持久性、服务和 webapp)的 maven 项目中不起作用。在 webapp 中,我复制了完全相同的内容,当我在服务器上运行它时,我得到 404 http 状态......即使模块正在成功构建。
L.E.接受的答案的第一部分是指那些刚开始使用 Spring 的人所犯的常见 servlet 映射错误。我的问题与它无关,我最终在初步回答后将其删除。为了不让读者感到困惑,接受的答案的第一部分是指以下代码:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
【问题讨论】:
-
您编辑了问题
/*不可能!现在答案毫无意义。它说要更改<url-pattern>/*</url-pattern>,但*不会出现* 问题。 -
@StephenP 这个问题是在初步回复后编辑的,我在答案的评论中宣布了这一点。保留 /* 似乎毫无意义,即使那不是我的问题,而且 Stack Overflow 上还有更多问题正是指这一点。我理解你的观点,我认为你是对的,这可能会造成混淆,所以我会在问题的末尾添加一个提及。
标签: java spring jsp spring-mvc