打印

求教l:contentPanel动态设定src属性的问题

求教l:contentPanel动态设定src属性的问题

我在页面中使用l:contentPanel进行页面的布局,左侧是导航树,右侧是工作区,顶部是子系统列表
从顶部选择对应的子系统然后左侧显示对应子系统的菜单列表。
我尝试使用document.getElementById().src属性设置,发现不起作用.
又看到一篇帖子说可以通过ajax:updater实现
生性愚钝未能领悟
望高人指点一二
不胜感激 在线等

TOP

在contentPanel中放入一个updater,updater可以绑定后台的一个AjaxUpdater的对象,通过那个对象的load方法可以动态加载不同的url

TOP

谢谢 能给段代码参考下吗

TOP

按照您的说法我把代码修改如下
复制内容到剪贴板
JSP 代码:
  1.  <l:contentPanel target=\"west\" id=\"westPanel\" title=\"#{PageBean.message}\" closable=\"false\" fitToFrame=\"true\">
  2.  <w:form>
  3.  <ajax:updater url=\"common/menu.jsp\">
  4.  </ajax:updater>
  5.  </w:form>
  6.  </l:contentPanel>
然而发现如果url写的是一个普通的jsp文件,没有任何问题
如果url写的是menu.jsp就会报一个错误,下面我把menu.jsp和错误信息都贴上来麻烦各位帮忙看下哈
复制内容到剪贴板
JSP 代码:
  1. <%@ page trimDirectiveWhitespaces=\"true\" pageEncoding=\"UTF-8\" %>
  2. <%@ taglib prefix=\"f\" uri=\"http://java.sun.com/jsf/core\" %>
  3. <%@ taglib prefix=\"h\" uri=\"http://java.sun.com/jsf/html\" %>
  4. <%@ taglib prefix=\"w\" uri=\"http://www.apusic.com/jsf/widget\" %>
  5. <%@ taglib prefix=\"l\" uri=\"http://www.apusic.com/jsf/layout\" %>
  6. <%@ taglib prefix=\"ajax\" uri=\"http://www.apusic.com/jsf/ajax\" %>
  7. <w:stylesheet>
  8. .x-tree-node{
  9.   font: normal 12px arial, tahoma, helvetica, sans-serif;
  10. }
  11. </w:stylesheet>
  12. <script src=\"common/components.js\"></script>
  13. <ajax:updater renderId=\"menu\">
  14. <w:tree animate=\"true\" lines=\"true\"
  15.       asyncData=\"#{ServerSideMenu.getFileInFolder}\"
  16.          nodeHasChildren=\"#{ServerSideMenu.isFolder}\" nodeText=\"#{ServerSideMenu.getFileName}\">
  17. <w:treeEventListener binding=\"#{PageBean}\" select=\"true\"/>
  18. </w:tree>
  19. </ajax:updater>
  20. <ajax:scripter script=\"#{PageBean.script}\"/>
错误信息:
复制内容到剪贴板
JAVA 代码:
  1. 严重: Servlet.service() for servlet jsp threw exception
  2. java.lang.ClassCastException: org.operamasks.faces.render.ajax.AjaxUpdaterRenderer$UIViewRootWrapper
  3.    at org.operamasks.faces.webapp.ajax.UpdaterTag.doStartTag(UpdaterTag.java:133)
  4.    at org.apache.jsp.common.menu_jsp._jspx_meth_ajax_005fupdater_005f0(menu_jsp.java:139)
  5.    at org.apache.jsp.common.menu_jsp._jspService(menu_jsp.java:72)
  6.    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
  7.    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  8.    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
  9.    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
  10.    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
  11.    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  12.    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  13.    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  14.    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
  15.    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:557)
  16.    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:481)
  17.    at org.operamasks.faces.render.ajax.AjaxUpdaterRenderer.renderSubview(AjaxUpdaterRenderer.java:217)
  18.    at org.operamasks.faces.render.ajax.AjaxUpdaterRenderer.encodeChildren(AjaxUpdaterRenderer.java:115)
  19.    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
  20.    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
  21.    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
  22.    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
  23.    at org.operamasks.faces.component.layout.UIFacelet.encodeAll(UIFacelet.java:162)
  24.    at org.operamasks.faces.render.layout.BorderLayoutRenderer.encodeChildren(BorderLayoutRenderer.java:147)
  25.    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
  26.    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
  27.    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
  28.    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
  29.    at org.operamasks.faces.webapp.core.ViewTag.doEndTag(ViewTag.java:169)
  30.    at org.apache.jsp.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:145)
  31.    at org.apache.jsp.index_jsp._jspService(index_jsp.java:97)
  32.    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
  33.    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  34.    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
  35.    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
  36.    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
  37.    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  38.    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  39.    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  40.    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
  41.    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
  42.    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
  43.    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
  44.    at org.operamasks.faces.context.ServletExternalContext.dispatch(ServletExternalContext.java:73)
  45.    at org.operamasks.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:286)
  46.    at org.operamasks.faces.lifecycle.LifecycleImpl$RenderResponse.execute(LifecycleImpl.java:299)
  47.    at org.operamasks.faces.lifecycle.LifecycleImpl.doPhase(LifecycleImpl.java:118)
  48.    at org.operamasks.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:91)
  49.    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
  50.    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  51.    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  52.    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
  53.    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  54.    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
  55.    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  56.    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  57.    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
  58.    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  59.    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
  60.    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
  61.    at java.lang.Thread.run(Unknown Source)

TOP

根据你说的情况。我写了简单例子中,在这个示例中当第一次加载index.jsp页面的时候,左边导航栏显示west-default.jsp页面的内容。当点击顶部的button1按钮的时候,左边导航栏将显示west1.jsp页面的内容;当点击顶部的button2按钮的时候,左边导航栏将显示west2.jsp的内容。这样就达到根据顶部的选择,在左边导航栏中动态的加载url。
  上传的是zip包,解压下以后可以直接导入到我们的Apusic Studio中。你可以在
http://www.apusic.com/product/download_studio_5.1.htm 下载Apusic Studio开发aom更加快捷。

[ 本帖最后由 liqi6510 于 2007-12-27 15:01 编辑 ]

附件

contentPanel.zip (14.85 KB)

2007-12-27 15:00, 下载次数: 143

TOP

谢谢楼上的 我明白你的说法
你给的demo也没有任何问题
但是现在的问题是如果我点击按钮的时候调用update.load("common/menu.jsp")的话就报错
如果load的是一个别的jsp就没有问题
如果我在contentPanel 中直接指定 src=”common/menu.jsp“ 的话就能正常显示那棵树出来
我没明白updater和直接设定src的区别是什么
为什么直接指定scr就没有问题 如果调用load的方法加载就报错误 错误就是上面我贴的那些
再次感谢楼上的

TOP

menu.jsp的源代码就是上面我贴的那个jsp的代码
如果用updater的话会爆出一个classcast的错误 我没明白为什么出现这个错误
不过我也没看到在updater内部 加载tree的demo 不知道是不是因为我加载的是一个tree而出现的这个错误.
项目升级初步定下用operamasks 但是碰到的问题比较多 ,日后可能还会麻烦各位更多的.
在此先谢过了.

TOP

回复 undefined 的帖子

你在menu.jsp中又加了 ajax:updater renderId="menu" ,你把这个ajax:updater去掉。再试一下!

TOP

去掉menu.jsp的updater之后不报错了 但是按钮的load方法虽然执行了
但是并没有刷新出来
如果我load的不是menu.jsp的话则正常
,....继续迷惑中

TOP

具体描述....
menu.jsp的updater去掉
然后我上面两个button button1 和button2
点 button1 load menu.jsp点 button2 load welcome.jsp
点button1 的时候 页面空白 点button2 的时候正常.....

TOP