
不难,主要你要理解<frame>标签的name属性和target属性的用法,以及Struts 2 action的处理过程。
你的第一个问题:点击用户管理的页面,会显示出所有的用户,但是单单跳转页面怎么启动struts的action在右边显示用户列表呢?
回答:其实直接跳转显示用户列表jsp,和调用Struts2的action之间差了一步,就是从数据库里取出用户数据,这需要在Struts2的action里调用,因此你需要这时把“用户管理”对应的URL换成Struts 2的action(假设是UserAction)对应的URL,这样你点击“用户列表”的链接后,UserAction会先处理(取出用户数据),最后通过return "success",把success视图(也可能是别的视图)设置为你要显示的用户列表JSP。
为了在右边显示,这里点击“用户管理”时,还要求把目标(target)设成你要显示所在的<frame>的name,也就是结果页面会在target属性设置的框架里显示,这是对于<form>和<a>这两个标签来说的。如果要是对<frame>标签来说,直接用其名字设置其location属性也可以达到效果。
我看你原来的代码好像已经用JavaScript实现了,就是这句:
dadd(5,2,'用户管理','${pageContextrequestcontextPath}/user/listjsp','','mainFrame');里面的“mainFrame"。(当然我不清楚你的这个js代码具体实现,总之最终需要设置右边页面里刷出来UserAction对应的URL,直接用原生js代码如下:
windowtopmainFramelocationhref="你的UserAction对应的URL";如果第一个问题理解并搞定,第二个问题也就不难:
在右边的页面做struts的增删改查的 *** 作时,在struts的xml里怎么写<result>的跳转路径
即可以显示homejsp ,右边的页面又可以显示相对应的struts *** 作后的跳转页面。
target属性可以设置成"_self"(这是个系统值,注意前面的下划线),表示在当前的页面跳转,也就是说Struts2页面内部的按钮啊 *** 作啊(不涉及导航)可以统统让它们在本页面里转换。并且不会影响其他框架里的内容,也就是整个页面框架集还是homejsp
首先在Struts2工程中导入所需的jar包 ezmorph-103jar json-lib-21-jdk15jar struts2-convention-plugin-2211jar struts2-rest-plugin-2211jar xstream-122jar
配置和使用
现在,我们配置struts2使它使用restful2actionmapper。在web项目中,修改strutsproperties文件(它最终会发布到你的web应用的web-inf/classes目录中):
strutsmapperclass=orgapachestruts2dispatchermapperrestful2actionmapper
strutsenableslashesinactionnames=true
当然,你也可以在strutsxml里进行配置,请参考struts2的相关文档。
这里有个小建议,许多人在web-inf/webxml里对struts2的配置是让struts2处理所有扩展名为action的url,也就是设置url-pattern为action。 我的建议是,不要使用扩展名来作为url-pattern,使用基于路径的匹配形式会更好,我一般是使用“/app/”作为url-pattern。至于扩展名,我一般是在strutsproperties文件中指定:
strutsactionextension=html,xml,json
或者,不要扩展名:
strutsactionextension=
不过,这些都是题外话。
现在,以上面讲到的article为例,我们定义articleaction。按照restful2actionmapper的规则,url与method的对应关系如下:
get /article => public string index(); 资源索引;
get /article/2007/8/a001 => public string view(); 对应于读取 *** 作;
post /article/2007/8/a001 => public string create(); 创建资源;
put /article/2007/8/a001 => public string update(); 更新资源;
delete /article/2007/8/a001 => public string remove(); 删除资源;
get /article/2007/8/a001!edit => public string edit(); 请求编辑资源,和rest的四种 *** 作没有对应关系;
get /article/new 或 get /article/!editnew => public string editnew(); 请求编辑新资源,和rest的四种 *** 作没有对应关系。
后两种方式似乎和rest没什么关系,但为传统的web应用开发提供了方便。比如edit(),服务器返回一个表单页面。但是,如果我们让应用服
此文来自: 马开东博客 转载请注明出处 网址: >
There is no Action mapped for namespace [/] and action name [Login] associated with context path
Loginaction没有在struts2 xml配置文件配置中配置。 也就是struts2找不到Loginaction
Strust2提供了一种配置,用于禁用DMI,你可以在strutsxml文件中,使用constant元素将strutsenableDynamicMethodInvocation属性设置为false,来关闭DMI。
你是不是关闭了?看看吧,不懂再问
以上就是关于struts2路径跳转全部的内容,包括:struts2路径跳转、如何利用struts2的Restful2ActionMapper实现ReST风格的URL、struts url写action路径后加参数是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)