Action搜索顺序:先匹配package的namespace,如果匹配到了,但是没有找到action就报错;如果没匹配到,继续往上一级路径进行匹配,直到默认的namespace。
Struts2的Action搜索顺序
localhost:8080/struts/path1/path2/path3/student.action
第一步:判断package是否存在,如:path1/path2/path3/
存在package
第二步:判断action是否存在,不过不存在则去默认namespace的package里寻找action
第三步:如果没有,则报错
不存在package
第二步:检查上一级路径的package是否存在(直到默认namespace),重复第一步
第三步:如果没有,则报错
Action搜索顺序(先判断package是否存在)
Action搜索顺序
Action搜索顺序
Action 搜索顺序,
1、判断 package是否存在
2、判断action是否存在,若存在 , 则打开。
3、action若不存在,则向上一级路径中查找该action。直到默认的namespace, 找不到,则报错
@Struts2---Action搜索顺序
例子:
http://localhost:8080/product_one/hellowworld.jsp可以进入result.jsp页面
http://localhost:8080/product_one/aaa/ddd/ccc/hellowworld.jsp也可以进入result.jsp页面
Action搜索顺序:
http://localhost:8080/struts2/path1/path2/path3/student.action
第一步:判断package是否存在,如:path1/path2/path3/
如果package存在
第二步:则判断该package中action是否存在,如果不存在则到默认namespace的package里面寻找action
第三步:如果没有,则报错
如果package不存在:
第二步:检查上一级路径的package是否存在(直到默认namespace),重复第一步
第三步:如果没有则报错
如果请求为/login.action,系统会根据根命名空间("/")中查找名为login的Action,如果在根命名空间中找到了名为login的Action,则该Action处理用户的请求;否则系统将转为在默认命名空间中寻找名为login的Action,如果默认的命名空间中有名为login的Action,则由该Action处理用户的请求。如果两个命名空间中都找不到名为login的Action,那么系统将出现错误。
注意:命名空间只有一个级别。如果请求的URL是/bookservice/search/get.action系统将先在/bookservice/search的命名空间下查找名为get的Action,如果在该系统命名空间内找到名为get的Action,则由该Action处理该用户的请求;如果在该命名空间中没有找到名为get的Action,系统将直接进入默认的命名空间中查找名为get的Action,而不会在bookservice的命名空间下查找名为get的Action。
可以多个包使用同一个命名空间,但是相同的命名空间相当于同一个模块,也就是同一个包。
一个包中可以有name值相同的action,但是后面的action会把前面同名的action覆盖掉
例子: http://localhost:8080/product_one/hellowworld.jsp可以进入result.jsp页面 http://localhost:8080/product_one/aaa/ddd/ccc/hellowworld.jsp也可以进入result.jsp页面 Action搜索顺序: http://localhost:8080/struts2/path1/path2/path3/student.action 第一步:判断package是否存在,如:path1/path2/path3/ 如果package存在 第二步:则判断该package中action是否存在,如果不存在则去默认namespace的package里面寻找action 第三步:如果没有,则报错 如果package不存在: 第二步:检查上一级路径的package是否存在(直到默认namespace),重复第一步 第三步:如果没有则报错 如果请求为/login.action,系统会根据根命名空间("/")中查找名为login的Action,如果在根命名空间中找到了名为login的Action,则该Action处理用户的请求;否则系统将转为在默认命名空间中寻找名为login的Action,如果默认的命名空间中有名为login的Action,则由该Action处理用户的请求。如果两个命名空间中都找不到名为login的Action,那么系统将出现错误。 注意:命名空间只有一个级别。如果请求的URL是/bookservice/search/get.action系统将先在/bookservice/search的命名空间下查找名为get的Action,如果在该系统命名空间内找到名为get的Action,则由该Action处理该用户的请求;如果在该命名空间中没有找到名为get的Action,系统将直接进入默认的命名空间中查找名为get的Action,而不会在bookservice的命名空间下查找名为get的Action。 可以多个包使用同一个命名空间,但是相同的命名空间相当于同一个模块,也就是同一个包。 一个包中可以有name值相同的action,但是后面的action会把前面同名的action覆盖掉
action的搜索顺序
action 搜索
struts2寻址:子包》》package配置的namespace指定包
Action搜索顺序