struts2路径跳转
d = new dTree('d');
d.add(0,-1,'系统菜单树');
d.add(2,0,'员工管理','${pageContext.request.contextPath}/login/welcome.jsp','','mainFrame');
//子目录添加
d.add(5,2,'用户管理','${pageContext.request.contextPath}/user/list.jsp','','mainFrame');
document.write(d);
这是左边的树
<frameset rows="103,*,43" frameborder=0 border="0" framespacing="0">
<frame src="${pageContext.request.contextPath}/login/left.jsp" name="leftFrame" noresize scrolling="YES">
<frame src="${pageContext.request.contextPath}/login/welcome.jsp" name="mainFrame">
</frameset>
</frameset>
这是主页面,树在左边 ,小页面在右边
现在的问题是,比如点击用户管理的页面,会显示出所有的用户,但是单单跳转页面怎么启动struts的action
在右边显示用户列表呢?
还有在右边的页面做struts的增删改查的操作时,在struts的xml里怎么写<result>的跳转路径
即可以显示home.jsp ,右边的页面又可以显示相对应的struts操作后的跳转页面 展开
不难,主要你要理解<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实现了,就是这句:
d.add(5,2,'用户管理','${pageContext.request.contextPath}/user/list.jsp','','mainFrame');
里面的“mainFrame"。(当然我不清楚你的这个js代码具体实现,总之最终需要设置右边页面里刷出来UserAction对应的URL,直接用原生js代码如下:
window.top.mainFrame.location.href="你的UserAction对应的URL";
如果第一个问题理解并搞定,第二个问题也就不难:
在右边的页面做struts的增删改查的操作时,在struts的xml里怎么写<result>的跳转路径
即可以显示home.jsp ,右边的页面又可以显示相对应的struts操作后的跳转页面。
target属性可以设置成"_self"(这是个系统值,注意前面的下划线),表示在当前的页面跳转,也就是说Struts2页面内部的按钮啊操作啊(不涉及导航)可以统统让它们在本页面里转换。并且不会影响其他框架里的内容,也就是整个页面框架集还是home.jsp