2011-07-14 22 views
0

我有一个春天的servlet有一个映射文件,并在那里我定义的URL /控制器的映射:从那里春天的servlet地图的.html会回应的作品,但映射到非HTML结尾的网址不

<prop key="/template.html">templateWebServiceController</prop> 

如果我是通过我的浏览器,并转到本地主机测试:8080/MyApp的/ template.html, 它会调用这个servlet

但是,如果我要改变servlet映射到:

<prop key="/template">templateWebServiceController</prop> 

基本上取出.html,这样做(转到本地主机:8080/myapp /模板) 将无法​​调用该servlet

我错过了什么吗?或测试它错了?

谢谢!

+0

您是否尝试过'template.form'配置 ' templateWebServiceCon troller' –

回答

1

Spring调度程序servlet被映射到web.xml中的URL模式。在你的情况下,它可能在.html结尾的网址:

<servlet-mapping> 
    <servlet-name>DispatcherServlet</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

如果你想春接受其他类型的模式(如/template),你必须映射其他改变的东西:或添加其他的servlet映射另一种模式。

例如,您可以使用<url-pattern>/template</url-pattern>添加一个映射,并且您的控制器将被拾取。或者你可以把<url-pattern>/*</url-pattern>和所有的URL将被Spring拿起。

0

您还可以添加一个映射DispatcherServlet的

<url-pattern>/</url-pattern> 

,并在你的servlet配置添加

<mvc:default-servlet-handler/> 

那么你也可以访问本地主机的根URL:8080/MyApp的/所有其他扩展等