【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来用!

猜你喜欢

转载自blog.csdn.net/yongh701/article/details/78543179
今日推荐