如何向含有frameset的页面传递参数

最近在项目中用到左侧树型菜单,考虑后觉得应该用frameset实现页面布局,整体分为上、下左、下右三部分。
而在菜单显示中,数据来源是数据库/文本数据,所以就碰到了如何向此整体页面传递数据(单个字符数据或对象/列表)的问题。经过半天的研究,初步有些想法,遂记之,方便自己,方便大家,还请不吝提出意见和建议 ^_^.
其实至今对jsp中几个作用域还有些模糊,今天使用session,达到了预期效果。

一、在action中进行session赋值(此处为剪短调试时间,遂写死)
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
session.setAttribute("vname", "menuName");
session.setAttribute("len", 1);
session.setAttribute("link", "test1.html");
session.setAttribute("mname", "menu1");
return mapping.findForward("test");
}

二、frame页面(主要测试页面为format.jsp)
<html>
<frameset rows="175,70%">

<frame noresize="noresize" src="page/newmenu/format_up.html" frameborder="no">

<frameset cols="190,75%">
<frame noresize="noresize" src="page/newmenu/format.jsp" frameborder="yes">
<frame noresize="noresize" src="page/newmenu/format_main.html" name="showframe" frameborder="yes">
</frameset>

</frameset>

</html>

三、format.jsp(此处略写)
<%
String vname = (String)session.getAttribute("vname");
String len = String.valueOf(session.getAttribute("len"));
String link = (String)session.getAttribute("link");
String mname = (String)session.getAttribute("mname");

%>
<javascript>
var t1 = '<%=vname%>';
var t2 = <%=len%>;
var t3 = ['<%=link%>'];
var t4 = ['<%=mname%>'];
_barList[t1] = [t2,t3,t4];
</javascript>


ps:
测试未完,会再补上,朋友们有想法的可以讨论
ps2:
今天已经测试可以对对象/集合的传递,不过使用struts中present、logic、bean标签好像有点问题
好的,以下是一个简单的含有 frameset 的多页面网站示例: ```html <!DOCTYPE html> <html> <head> <title>Frameset Demo</title> </head> <frameset cols="20%,80%"> <frame src="menu.html" name="menu"> <frame src="home.html" name="content"> <noframes> <body> <p>Your browser does not support frames.</p> </body> </noframes> </frameset> </html> ``` 解释一下代码: 1. `frameset` 标签用来定义一个框架集,里面可以包含多个 `frame` 标签,用来定义每个框架的内容。 2. `cols` 属性用来定义框架集中各个框架的宽度比例,这里我们定义了两列,第一列占 20%,第二列占 80%。 3. 第一个 `frame` 标签的 `src` 属性为 "menu.html",它的 `name` 属性为 "menu",表示这个框架会加载 "menu.html" 这个页面,并在父窗口中被命名为 "menu"。 4. 第二个 `frame` 标签的 `src` 属性为 "home.html",它的 `name` 属性为 "content",表示这个框架会加载 "home.html" 这个页面,并在父窗口中被命名为 "content"。 5. `noframes` 标签用来定义在不支持框架的浏览器中显示的内容,这里我们只是简单地提示用户浏览器不支持框架。 你可以在 "menu.html" 和 "home.html" 这两个页面中分别添加自己的内容。在 "menu.html" 中,你可以添加一个菜单列表,用来链接到其他页面;在 "home.html" 中,你可以添加网站的首页内容。同时,你也可以添加更多的 frame 标签来定义更多的框架。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值