【struts】struts namespace的配置

本文深入探讨了Struts2框架中的路径匹配规则,包括路径与action的匹配过程,以及默认package的作用与影响。详细解读了Struts.xml配置文件中的作用与路径匹配策略,同时提供了实际案例进行说明。
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>struts2回顾</title>
</head>
<body>
	<form action="${pageContext.request.contextPath}/hello/say" method="post">
		username: <input type="text" name="username" value=""/>
		<input type="submit" value="提交"/>
	</form>
	<hr />
	<pre>
	匹配规则:
	第一阶段:匹配路径和action
		路径匹配原则,逐级往上匹配,一直匹配到“/”
		1. 如果有匹配到,则匹配当前的action name,如果匹配到,则成功,否则进入第二阶段;
		2. 如果没有匹配到,则直进入第二阶段;
	第二阶段:匹配默认package
		直接匹配默认package中配置的action name,匹配到则成功,否则失败;
		
	注意:卧槽,NMB的,还和默认package在struts.xml中的位置有关
		建议将默认package放在配置文件最后
		
	struts.xml
		/p1/p2	p1p2
		/p1		defaultM
		/		defaultM
				defaultM
	</pre>
	<hr />
	路径匹配,但是action不匹配,走的是默认package(即没有配置namespace的)
	<a href="${pageContext.request.contextPath}/p1/p2/defaultM">/p1/p2/defaultM</a><br />
	路径不全匹配,action匹配,走的是package namespace=/p1
	<a href="${pageContext.request.contextPath}/p1/p3/defaultM">/p1/p3/defaultM</a><br />
	路径不全匹配,action不匹配(此时action的name修改成其他的,不是defaultM,defaultM是默认package的action name),走的是默认package
	<a href="${pageContext.request.contextPath}/p1/p3/defaultM">/p1/p3/defaultM</a><br />
	路径全不匹配,action匹配“/”,走的是“/”?如果默认package在“/”之前,则报错;否则,走“/”,nono是package “/”的action name
	<a href="${pageContext.request.contextPath}/p5/p3/nono">/p5/p3/nono</a><br />
	路径全不匹配,action匹配默认package,走的是默认package?
	<a href="${pageContext.request.contextPath}/p5/p3/defaultM">/p5/p3/defaultM</a><br />
</body>
</html>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值