这是web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<display-name>BulkSMS2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>BulkSMS2</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/BulkSMS2-servlet.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>BulkSMS2</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/BulkSMS2-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>
分派器-servlet.xml中:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:component-scan base-package="com.nt.beans" />
<mvc:annotation-driven />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
当我运行应用程序时,我收到404错误。我已将index.jsp文件放在WEB-INF/pages/index.jsp
文件夹中,但我仍然得到相同的错误。我检查了所有配置,但我不确定为什么找不到该页面。
答案 0 :(得分:0)
尝试在控制器中添加以下方法
@RequestMapping(value = "/", method = RequestMethod.GET)
public String indexPage(ModelMap model) {
return "index";
}
答案 1 :(得分:0)
您的应用程序存在一些配置问题。首先是指定应用程序上下文的方式。从配置开始,您似乎有一个应用程序上下文BulkSMS2-servlet.xml。因此,您不需要根应用程序上下文。因此,请删除web.xml中的此部分
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/BulkSMS2-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
第二个问题是您的网址映射/ *。它会覆盖所有servlet映射,包括容器提供的jsp处理。这意味着包含jsps请求的所有请求都由DispatcherServlet处理。更改此部分
BulkSMS2 / *
要 BulkSMS2 /
这会覆盖容器默认servlet处理程序,但不会覆盖特殊容器servlet。要处理静态资源,请将以下行添加到BulkSMS2-servlet.xml
<mvc:default-servlet-handler/>
要将index.jsp作为静态资源访问,需要将其放在WEB-INF文件夹外的根webapp文件夹中。但是,如果您想将其保存在WEB-INF文件夹中,那么您的请求应由控制器处理
@RequestMapping("/")
public class HomeController{
@RequestMapping()
public String showHomePage(){
return "index";
}
}
答案 2 :(得分:0)
好的,您将DispatcherServlet映射到/*
,以便它将收到空的servlet路径/
。
你能做的最简单的事情(IMHO)是删除web.xml文件中的<welcome-file-list>
块,只是将一个空的servlet路径作为默认地址传递:它将由Spring-MVC处理。
然后你只需添加一个SimpleUrlHandlerMapping来将默认URL映射到一个只显示你的视图的ParameterizedViewController。
因此,在dispatcher-servlet上下文中,添加以下bean:
<bean id="indexController" p:viewName="index"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"/>
<bean id="simpleUrlHandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
/=indexController
</value>
</property>
</bean>
但是你的web.xml文件有问题。您正在使用相同的文件初始化根上下文(顶级<context-param>
块)和DispatcherServlet一(<servlet><init-param>
块)。因此,您将以每个bean的两个不同实例结束,首先是在子上下文中的后一个中。这可能导致奇怪且难以发现问题......短篇小说:不要那样做。