Java 如何在SpringMVC中浏览htm文件
我使用的是SpringMVC2的默认配置。所以,我的调度员看起来Java 如何在SpringMVC中浏览htm文件,java,spring-mvc,glassfish,Java,Spring Mvc,Glassfish,我使用的是SpringMVC2的默认配置。所以,我的调度员看起来 <prop key="index.htm">indexController</prop> indexController 我在根目录下有一个简单的htm文件。当我浏览这个文件时,我得到404:NotFound错误。如何浏览Spring MVC中物理上存在于磁盘上的htm文件。尝试在springmvc-servlet.xml文件中添加bean id: <bean id="indexControll
<prop key="index.htm">indexController</prop>
indexController
我在根目录下有一个简单的htm文件。当我浏览这个文件时,我得到404:NotFound错误。如何浏览Spring MVC中物理上存在于磁盘上的htm文件。尝试在springmvc-servlet.xml文件中添加bean id:
<bean id="indexController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
然后:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
...
<prop key="/index.htm">indexController</prop>
</props>
</property>
</bean>
...
索引控制器
尝试在springmvc-servlet.xml文件中添加bean id:
<bean id="indexController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
然后:
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
...
<prop key="/index.htm">indexController</prop>
</props>
</property>
</bean>
...
索引控制器
在基于注释的Spring 3.x中,您只需将其作为
@RequestMaping(value="/index.htm")
public void doSomeJob(){
//some code here
}
如果您以“/pathToIt/index.htm”的形式发出请求,则doSomeJob()方法将捕获该请求
在SpringMVC3.x的配置文件中不需要请求映射
注意:如果spring找不到您的物理文件,也可能导致404。在基于注释的spring 3.x中,您可以将其作为
@RequestMaping(value="/index.htm")
public void doSomeJob(){
//some code here
}
如果您以“/pathToIt/index.htm”的形式发出请求,则doSomeJob()方法将捕获该请求
在SpringMVC3.x的配置文件中不需要请求映射
注意:如果spring找不到您的物理文件,也可能导致404。您需要将URL
index.htm
映射到控制器。在页面具有正确的spring mvc配置之前,您无法查看页面
<bean name="/index.htm" class="com.indexController">
....
</bean>
您需要将URL
index.htm
映射到控制器。在页面具有正确的spring mvc配置之前,您无法查看页面
<bean name="/index.htm" class="com.indexController">
....
</bean>
好的,这听起来很熟悉,如果您使用的是MVC2,那么实现这一点的最佳方法是为DispatcherServlet提供特定的映射,而不是/
<servlet>
<servlet-name>myDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myDispatcherServlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
myDispatcherServlet
org.springframework.web.servlet.DispatcherServlet
1.
myDispatcherServlet
*.jsp
这将确保对*.jsp的唯一请求将转到dispatcher servet,其余请求将由容器本身处理
好的,这听起来很熟悉,如果您使用的是MVC2,那么实现这一点的最佳方法是为DispatcherServlet提供特定的映射,而不是/
<servlet>
<servlet-name>myDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myDispatcherServlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
myDispatcherServlet
org.springframework.web.servlet.DispatcherServlet
1.
myDispatcherServlet
*.jsp
这将确保对*.jsp的唯一请求将转到dispatcher servet,其余请求将由容器本身处理
谢谢,但这并不能解决我的问题。当我删除web.xml设置(servlet映射)时,它就工作了。谢谢,但并不能解决我的问题。当我删除web.xml设置(servlet映射)时,它就工作了。这个问题已经在中得到了回答,请参阅下面的我的答案,如果可能的话,还可以在web.xml中为dispatcher servlet提供条目。谢谢这个问题已经在中得到了回答,请参见下面的我的答案,如果可能的话,请在web.xml中提供dispatcher servlet的条目。谢谢,但我使用的是MVC 2,问题是我有一个物理*.htm文件,但Spring声称找不到404。你能发布你的项目目录和文件吗?还有servlet配置内容(你在其中定义了ViewResolver等,如果有的话)和接收index.htm请求的控制器部分。请查看并下载该项目,谢谢,但我使用的是MVC 2,问题是我有一个物理*.htm文件,但Spring声称找不到404。能否发布项目目录和文件以及servlet配置内容(在其中定义了ViewResolver等,如果有)和接收index.htm请求的控制器部分。请查看并下载该项目,很遗憾,我的所有控制器都已映射到*.htm。我无法更改此映射。这无法完成。您必须将文件扩展名从htm更改为html或将简单htm重命名为html文件:(很遗憾,我的所有控制器都已映射到*.htm。我无法更改此映射。这无法完成。您必须将文件扩展名从htm更改为html或将简单htm重命名为html文件:(是的。将.jsp更改为.htm或添加另一个值。我非常了解Spring MVC和ASP.NET MVC中的路由规则。这不是路由问题。问题是Dispathcher可以捕获以.htm结尾的所有请求。我看起来像是,在web.xml*.htm*.doyes.change.jsp中添加更多url模式或添加另一个值。我非常了解Spring MVC和ASP.NET MVC中的路由规则。这不是路由问题。问题是Dispathcher服务捕获以.htm结尾的所有请求。我看起来像是,在web.xml*.htm*.do中添加更多url模式