问题描述
我现在有一个网页头文件(head.jsp),我在每个页面都要用语句<jsp:includepage="head.jsp"/>把这个文件引入到页面中,但是我在head.jsp中需要动态从数据库中读取一些信息,比如信息类型,认证类型等动态显示在页面,因为这些是需要动态增加和修改名字等,所以不能静态放在页面,我现在的做法是读取一个action(路径是head.do),然后跳转到head.jsp,这样是可以读取信息然后跳转到head.jsp但是在其它页面只要用<jsp:includepage="head.do"/>语句的话,就会整个跳转到head.jsp,其它页面不能显示,请问我应该怎么做呢?有人说用ajax,能够实现,可是我不知道怎么做,希望哪位朋友能够告诉我一下了,小弟非常感谢啦!还有一种很不好的设计方法可以实现,但是效率太低了,可以说是设计上的严重问题,我直接在head.jsp中加载配置文件,直接读取list,然后在页面显示代码如下:ApplicationContextcontext=newClassPathXmlApplicationContext("applicationContext-*.xml");//公告类型,加载DAO层的逻辑类NoticeTypeDAOnoticeTypeDAO=(NoticeTypeDAO)context.getBean("noticeTypeDAO");//认证类型CertificateTypeDAOcertificateTypeDAO=(CertificateTypeDAO)context.getBean("certificateTypeDAO");//这句话就是查询所有的类型,然后返回List,然后在页面显示noticeTypeList=noticeTypeDAO.queryNoticeTypeByCondition("fromNoticeType");//这句话就是查询所有的类型,然后返回List,然后在页面显示certificateTypeLsit=certificateTypeDAO.queryByCondition("formCertificateType");我觉得这样肯定不行,,因为SessionFactory是重量级的,不能每次访问都来加载文件,然后创建工厂,呵呵,这样很容易发生内存溢出,而且确实发生过这样的事情.
解决方案
本帖最后由 xuzhengquan 于 2010-05-15 09:48:52 编辑
解决方案二:
自己先来顶一下,呵呵
解决方案三:
用iframe搞定<iframeid="head_frame"name="head_frame"border="0"scrolling="no"src="head.do"frameborder="0"></iframe>把<jsp:includepage="head.jsp"/>替换掉
解决方案四:
我现在的做法是读取一个action(路径是head.do),然后跳转到head.jsp,这样是可以读取信息然后跳转到head.jsp废话,你执行这个跳到head.jsp