您的位置:首页 > 编程语言 > Java开发

Struts2学习笔记三——Namespace与访问路径

2017-05-03 23:22 471 查看
Namespace决定了action的访问路径

1,如果Namespace不写(默认为""(空))或者定义为""或者"/",表示可以接受以下路径的action。

<package name="default1"  extends="struts-default">
<action name="namespace" class="action.NamespaceAction">
<result name="success">/success.jsp</result>
</action>
</package>
public class NamespaceAction {
public String execute() {
System.out.println("this is NamespaceAction");
return "success";
}
}


下面路径都能访问










[b]2,如果Namespace定义为"/path1",访问路径为/action名称、/path1/action名称(Struts2中.action可以省略)
[/b]

<package name="default1" namespace="/aaa"  extends="struts-default">
<action name="namespace" class="action.NamespaceAction">
<result name="success">/success.jsp</result>
</action>
</package>




异常



[b]3,如果Namespace路径嵌套很多[/b]

[b]如:path1/path2/path3与" "
[/b]



<package name="default" namespace="" extends="struts-default">
<action name="namespace" class="action.NamespaceAction">
<result name="success">/success.jsp</result>
</action>
</package>
<package name="default1" namespace="/aaa/bbb/ccc" extends="struts-default">
<action name="namespace" class="action.Namespace1Action">
<result name="success">/success1.jsp</result>
</action>
</package>
success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>

</head>

<body>
this is NamespceAction,namespace=""
</body>
</html>
success1.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>

</head>

<body>
this is Namespce1Action,namespace="/aaa/bbb/ccc"
</body>
</html>
NamespaceAction.java



public class NamespaceAction {
public String execute() {
return "success";
}
}
[b]NamespaceAction1.java[/b]



public class Namespace1Action {
public String execute() {
return "success";
}
}



[b]





[/b]

[b]如:/path1/path2 与/path3
[/b]

<package name="default" namespace="/bbb/ccc" extends="struts-default">
<action name="namespace" class="action.NamespaceAction">
<result name="success">/success.jsp</result>
</action>
</package>
<package name="default1" namespace="/aaa" extends="struts-default">
<action name="namespace" class="action.Namespace1Action">
<result name="success">/success1.jsp</result>
</action>
</package>









如:/path1/path2 与 /path1

<package name="default" namespace="/aaa/bbb" extends="struts-default">
<action name="namespace" class="action.NamespaceAction">
<result name="success">/success.jsp</result>
</action>
</package>
<package name="default1" namespace="/aaa" extends="struts-default">
<action name="namespace" class="action.Namespace1Action">
<result name="success">/success1.jsp</result>
</action>
</package>










总结:首先匹配全路径,如果没有,就先匹配/path1/path2(减少最外一个),

如果还是没有符合/path1/path2,继续匹配/path1,

如果还是没有符合/path1,报错,

如果路径匹配就会进入这个包package寻找action名匹配的,没有找到同上继续查找
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts namespace
相关文章推荐