关于Struts2 Action中的最基本method配置我就不说,那个比较死板。关于这个method有两个动态调用Action方法的方法:WildCard(通配符)和DMI(动态方法调用)。
后台的Action代码就不写了,和其他的一样,不一样的地方在于struts文件的配置。
这里一个添加用户为例:
(一) WildCard配置方式:(局部代码)
<package name="actions" extends="user" namespace="/user"> <action name="User_*" class="com.struts2.action.UserAction" method="{1}"> <result>/User{1}_success.jsp</result> </action> </package>
在添加用户页面代码如下:
<form action="user/user_add" method="get"> 输入用户名: <input name="name" type="text" /> <input name="submit" type="submit" value="添加" /> </form>
这样通过Struts配置文件中的通配符就可以调用UserAction类中的add方法。操作完成之后转发到Useradd_success.jsp页面。
(二) DMI配置方法和平常一样。不需要配置Action中的method方法。在调用的时候指定即可。 Struts配置文件:
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="actions" extends="user" namespace="/user"> <action name="User" class="com.struts2.action.UserAction"> <result>/User_success.jsp</result> </action> </package>
在添加用户页面代码如下:
<form action="user/user!add" method="get"> 输入用户名: <input name="name" type="text" /> <input name="submit" type="submit" value="添加" /> </form>
这样也可以完成UserAction中的add方法调用,不过在完成调用之后转到的页面比较固定了。
这个两种方法哪个更好用呢?我没有用过sturts做东西,目前还不清楚,不过根据试验效果第一种方法可能用的要多一些,因为很多页面的命名直接就是根据他的功能来完成的。 比如说添加用户页面(user_add.jsp),删除用户页面(user_delete.jsp),这样的话用通配符来完成个人感觉还是很方便的。 不过要想高效的使用通配符,那么就应该在项目开发之前就做好约定。页面该怎么命名,通配符怎么写。都要明确定义。
- from the5fire.com
----EOF-----
微信公众号:Python程序员杂谈
微信公众号:Python程序员杂谈