技术开发 频道

配置Struts2的action



    Namespaceaction分成逻辑上的不同模块,每一个模块有自己独立的前缀。使用namespace可以有效的避免action重名的冲突,例如每一个package都可以有自己独立的MenuHelp action,但是事项方式各有不同。Struts2标签带有namespace选项,可以根据namespace的不同向服务器提交不同的packageaction的请求。

“/”
表示跟namespace,所有直接在应用程序上下文环境下的请求(Context)都在这个package中查找。

“”表示默认namespace,当所有的namespace中都找不到的时候就在这个namespace中寻找,例如我们上面的login应用程序。

例如,有如下配置:

<package name="default"> <action name="foo" class="mypackage.simpleAction> <result name="success" type="dispatcher"> greeting.jsp </result> </action> <action name="bar" class="mypackage.simpleAction"> <result name="success" type="dispatcher">bar1.jsp</result> </action> </package> <package name="mypackage1" namespace="/"> <action name="moo" class="mypackage.simpleAction"> <result name="success" type="dispatcher">moo.jsp</result> </action> </package> <package name="mypackage2" namespace="/barspace"> <action name="bar" class="mypackage.simpleAction"> <result name="success" type="dispatcher">bar2.jsp</result> </action> </package>
1 如果请求为/barspace/bar.action

 

 

    查找namespace/barspace,如果找到bar则执行对应的action,否则将会查找默认的namespace,在上面的例子中,在barspace中存在名字位baraction,所以这个action将会被执行,如果返回结果为success,则画面将定为到bar2.jsp 

 

2 如果请求为/ moo.action

 

    根namespace'/')被查找,如果moo action存在则执行否则查询默认的namespace,上面的例子中,根namespace中存在moo action,所以改action被调用,返回success的情况下画面将定位到moo.jsp、

0
相关文章