欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何向含有frameset的页面传递参数 博客分类: WEB JSPStrutsBeanHTML 

程序员文章站 2024-03-08 12:00:34
...
    最近在项目中用到左侧树型菜单,考虑后觉得应该用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标签好像有点问题