SpringMVC指明actions的后缀
Posted yongh701
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC指明actions的后缀相关的知识,希望对你有一定的参考价值。
SpringMVC的actions的后缀在web.xml中与org.springframework.web.servlet.DispatcherServlet匹配的<servlet-mapping>节点下的<url-pattern>中设置,如下图所示:
比如上述web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
在<url-pattern>节点的值是/,那action是无后缀的,如下图所示:
如果我要搞一个伪静态,如同《【Javaweb】利用urlRewrite插件实现网站的伪静态与aspx,jsp,php三版齐发的邪门歪道》(点击打开链接)那套,也就是觉得我的javaee工程,充斥着大量无后缀的action链接太low了,我需要在后面加个.html的话,你就直接将<url-pattern>节点的值从/改成*.html就行了,也就是web.xml变成这样:
<?xml version="1.0" encoding="UTF-8"?>
<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_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
这时,你会发现http://localhost:8080/SpringMVCHelloworld/hello已经不复存在了:
必须http://localhost:8080/SpringMVCHelloworld/hello.html才能访问了!
这时候,你的javaee好像所有页面都是静态页面.html一样,当然你闲着无聊改成*.php,*.aspx或者*.gif、*.jpg、*.png,甚至*.mp3都可以。当然,没事别这样玩,因为可能会与你javaee网页工程里的真mp3文件冲突,导致音乐读取不正常。这里改成*.html的原因是因为,很少在javaee直接写*.html,再静态的页面都习惯性写*.jsp了!
不过有点值得肯定的是,SpringMVC已经完美集成urlrewritefilter-4.0.3.jar的功能了,无须自己又找个urlrewritefilter-4.0.3.jar来用!
以上是关于SpringMVC指明actions的后缀的主要内容,如果未能解决你的问题,请参考以下文章
springmvc之json交互406异常(Not Acceptable)和415异常(Unsupported Media Type)
各位侠客,form表单中action路径后面加“.do”是啥意思???
SpringMVC当中的Controller接口和Struts2当中的Action有啥区别