我在frame中使用struts-menu,我在数据库中已经指定了target的属性,但是还是出不来,大家帮忙看一下,我的程序是不是有问题啊?frame page<%@ page contentType="text/html;charset=gb2312" language="java"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<frameset rows="*" cols="240,*" framespacing="2" frameborder="Yes"
border="1" bordercolor="#8BB1D8" id="bframe">
<frame id="left" src="menu.do" name="left" scrolling="auto"
bordercolor="#8BB1D8">
<frame id="main" src="content.jsp" name="main"
noresize="noresize" bordercolor="#8BB1D8">
</frameset></html>
数据是用hibernate从数据库中取到的,就是下面程序中的ms.getList()MenuAction public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) { // TODO Auto-generated method stub
List list = ms.getList(); if (list.size() < 0)
return mapping.getInputForward();
MenuRepository repository = new MenuRepository();
HttpSession httpsession = (HttpSession) request.getSession();
ServletContext application = (ServletContext) httpsession
.getServletContext();
MenuRepository defaultRepository = (MenuRepository) application
.getAttribute(MenuRepository.MENU_REPOSITORY_KEY);
repository.setDisplayers(defaultRepository.getDisplayers()); for (int i = 0; i < list.size(); i++) {
MenuComponent mc = new MenuComponent();
MenuItem mi = (MenuItem) list.get(i);
String name = mi.getName();
mc.setName(name);
String parent = (String) mi.getParentName();
//System.out.println(name + ", parent is: " + parent);
if (parent != null) {
MenuComponent parentMenu = repository.getMenu(parent);
if (parentMenu == null) {
// System.out.println("parentMenu '" + parent
// + "' doesn't exist!");
// create a temporary parentMenu
parentMenu = new MenuComponent();
parentMenu.setName(parent);
repository.addMenu(parentMenu);
}
mc.setParent(parentMenu);
}
String title = (String) mi.getTitle();
mc.setTitle(title);
String location = (String) mi.getLocation();
mc.setLocation(location);
String target = (String) mi.getTarget();
mc.setTarget(target); repository.addMenu(mc); }
// request.setAttribute("repository", repository);
request.getSession().setAttribute("repository", repository);
return mapping.findForward("ok");
}
menu.jsp<div class="dynamicMenu tree"><script type="text/javascript"> <menu:useMenuDisplayer name="Velocity" config="/templates/xtree.html" repository="repository"> <c:forEach var="menu" items="${repository.topMenus}"> <menu-el:displayMenu name="${menu.name}" />
</c:forEach> </menu:useMenuDisplayer> </script></div>树已经可以出来了,但是就是target无法使用。郁闷啊
<html>
<frameset rows="*" cols="240,*" framespacing="2" frameborder="Yes"
border="1" bordercolor="#8BB1D8" id="bframe">
<frame id="left" src="menu.do" name="left" scrolling="auto"
bordercolor="#8BB1D8">
<frame id="main" src="content.jsp" name="main"
noresize="noresize" bordercolor="#8BB1D8">
</frameset></html>
数据是用hibernate从数据库中取到的,就是下面程序中的ms.getList()MenuAction public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) { // TODO Auto-generated method stub
List list = ms.getList(); if (list.size() < 0)
return mapping.getInputForward();
MenuRepository repository = new MenuRepository();
HttpSession httpsession = (HttpSession) request.getSession();
ServletContext application = (ServletContext) httpsession
.getServletContext();
MenuRepository defaultRepository = (MenuRepository) application
.getAttribute(MenuRepository.MENU_REPOSITORY_KEY);
repository.setDisplayers(defaultRepository.getDisplayers()); for (int i = 0; i < list.size(); i++) {
MenuComponent mc = new MenuComponent();
MenuItem mi = (MenuItem) list.get(i);
String name = mi.getName();
mc.setName(name);
String parent = (String) mi.getParentName();
//System.out.println(name + ", parent is: " + parent);
if (parent != null) {
MenuComponent parentMenu = repository.getMenu(parent);
if (parentMenu == null) {
// System.out.println("parentMenu '" + parent
// + "' doesn't exist!");
// create a temporary parentMenu
parentMenu = new MenuComponent();
parentMenu.setName(parent);
repository.addMenu(parentMenu);
}
mc.setParent(parentMenu);
}
String title = (String) mi.getTitle();
mc.setTitle(title);
String location = (String) mi.getLocation();
mc.setLocation(location);
String target = (String) mi.getTarget();
mc.setTarget(target); repository.addMenu(mc); }
// request.setAttribute("repository", repository);
request.getSession().setAttribute("repository", repository);
return mapping.findForward("ok");
}
menu.jsp<div class="dynamicMenu tree"><script type="text/javascript"> <menu:useMenuDisplayer name="Velocity" config="/templates/xtree.html" repository="repository"> <c:forEach var="menu" items="${repository.topMenus}"> <menu-el:displayMenu name="${menu.name}" />
</c:forEach> </menu:useMenuDisplayer> </script></div>树已经可以出来了,但是就是target无法使用。郁闷啊
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货