精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-09
通过配置文件好象很好实现,主要定义多个action节点。指定method=“*”就行。 但是我现在遇到的问题是全部想使用annotation。那么怎么才能在struts2中实现类似struts中的dispatchAction功能呢。这样我将来避免只有一个execute方法。将来使用annotation的校验也可以针对各个crud方法做控制。而不是只针对一个execute。 再次感谢。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-09
再把问题描述一下。
我尝试使用在action中将一个execute拆成多个方法。然后,在一个请求的url中使用/aaa.action?method=bbb这样的方式访问不成。如果使用配置文件一般按照下面的配置没有问题,比如定义如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="Struts2_CRUD_DEMO" extends="struts-default" namespace="/Book"> <action name="List" class="tutorial.action.BookAction" method="list"> <result>List.jsp</result> </action> <action name="Edit" class="tutorial.action.BookAction" method="load"> <result>Edit.jsp</result> </action> <action name="Store" class="tutorial.action.BookAction" method="store"> <result type="redirect">List.action</result> </action> <action name="Remove" class="tutorial.action.BookAction" method="remove"> <result type="redirect">List.action</result> </action> </package> </struts> 可是使用annotation,好象没有对应的annotation指定method。不知该如何解决。 |
|
返回顶楼 | |
发表时间:2007-05-09
用/aaa!bbb.action这样的方式可以,!后面的是方法名。
|
|
返回顶楼 | |
发表时间:2007-05-09
引用 用/aaa!bbb.action这样的方式可以,!后面的是方法名。 struts2的文档中好象没有这样的介绍。我现在系统连不上数据库。暂时验证不了。 能否给我一些相关的资料。谢谢。 |
|
返回顶楼 | |
发表时间:2007-05-09
那是你没有仔细看,struts2的官方文档中提到过这种方法,但是好像没有详细说明。
|
|
返回顶楼 | |
发表时间:2007-05-09
这样折出来是成功的。谢谢janh.
不过拆分出来有一个问题:比如action中有一个createRole方法。页面表单请求如下: <s:form action="/privilege/role!createRole.action" method="post" validate="true" theme="simple"> 。。。。。。。。。。。。。 </s:form> 当我在form中指定form的action的属性为上时,总是报404 error. 这是为什么? |
|
返回顶楼 | |
发表时间:2007-05-09
我在页面中使用<a href="/privilege/role!createRole.action">aaa</a>是访问到对应的action方法。难道只有第一次请求可以这样吗?那么解决办法是什么?redirect吗?如何实现。谢谢大家,感谢janh给我的帮助。
|
|
返回顶楼 | |
发表时间:2007-05-09
直接用<form action="" ></form>,因为没有定义action map,所以用<s:form >也没有什么意义,而且好像它对!处理不好。
|
|
返回顶楼 | |
发表时间:2007-05-09
谢谢。janh,十分感谢。正如你所说,改成form没有问题。对s:form还是不太熟悉。比如它的validate属性。看到有些资料设置为true代表客户端校验。如果我使用form的话,是不是会变成后台检验。我对struts2的熟悉过程就是通过这个项目突击。多多指导,一起进步。
|
|
返回顶楼 | |
发表时间:2007-05-09
问题总是没完没了。郁闷!
现在方法都拆出来了,按表单提交也没有问题了。 但是当我在action中的每个方法加入@validations(.....)时,却出现问题。比如有菜单项代码 <td height="28" class="cd_2_1" id=dpdivbutton15><a class="cd_1" id="dpdivlink15" onclick=changedpdiv(15) href="${ctx }/privilege/role!searchRole.action" target="right">角色权限设置</a></td> 当我在action中给searchRole方法加上了@validations(....)时,每当点击菜单项“创建角色”时,就会跑到其它页面。我在后台跟踪,会执行到其它的方法里去。当我把@validations去掉就没有问题。怪呀。我当初拆分方法的目的就是想很爽的使用@validations做检验。这是为什么呢? |
|
返回顶楼 | |