Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SpringMVC中浏览htm文件_Java_Spring Mvc_Glassfish - Fatal编程技术网

Java 如何在SpringMVC中浏览htm文件

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

我使用的是SpringMVC2的默认配置。所以,我的调度员看起来

 <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模式