如果走框架在同一页面里实现多个列表的分页查询

08-01-06 badwang
用Jdon的框架实现批量查询没有问题,只需要实现

public Model findModelByKey(HttpServletRequest request, Object key)

public PageIterator getPageIterator(HttpServletRequest request, int start,int count)

接口.

现在问题在于在一个页面需要实现多个列表的分页查询~~怎么实现呢?大家教教我啊~~

oojdon
2008-01-06 22:58
楼主,框架的使用指南中有这方面的方法:

Jdon框架的批量查询一定是一个ModelListAction对应一个ModelListForm,这是一个比较固定的流程了。如果在当前这个批量查询页面中还要显示其他Model的批量查询,也就是两个或多个Model的批量查询在同一个Jsp页面中显示,在这种情况有上述两个方案选择。

第一个方案前提是你必须使用Struts+Tiles架构,使用Tiles可以将页面划分成任意块,这样多个批量查询在页面任何位置以任何方式组合显示,完全灵活,缺点是多加入Tiles概念。

在一般小型应用中,我们只需采取第二方案,将多个批量查询的Action的struts-config.xml配置进行首尾连接既可,这种方式类似是按照Jsp页面先上后下的顺序串联的。

例如:threadPrevNexListForm和messageListForm是两个批量查询的ModelListForm,那么struts-config.xml配置如下:

<action path="/message/messageList"

type="com.jdon.jivejdon.presentation.action.ThreadPrevNexListAction"

name="threadPrevNexListForm" scope="request"

validate="false">

<forward name="success" path="/message/messageListBody.shtml"/>

</action>

<action path="/message/messageListBody"

type="com.jdon.jivejdon.presentation.action.MessageListAction"

name="messageListForm" scope="request"

validate="false">

<forward name="success" path="/message/messageList.jsp"/>

</action>

这样,当url调用/message/messageList.shtml时,最后导出/message/messageList.jsp这个页面,在messageList.jsp中可以访问threadPrevNexListForm和messageListForm两个ActionForm了。

上述组件构造方法可应用在复杂的Master-Details编程中,将Master看成一个对象Model,Details是一系列子Model的集合。

badwang
2008-01-06 23:56
谢谢了,其实我刚 刚 也 想到了,一个action转向另一个action,不知道这样效率高吗?

banq
2008-01-07 15:58
action串联效率性能都没有问题,相当于sevlet转发。

还有另外一种方法:使用tiles,只要在struts-defs.xml中定义:

<definition name=".hotkeys" path="/query/hotKeys.shtml?method=hotkeys">

</definition>

然后在jsp页面中使用:

热点TAG:<tiles:insert definition=".hotkeys"></tiles:insert>

就可以在当前Jsp中任何地方嵌入另外一个Action和它的Jsp

action串联和tiles属于两种不同的页面组合,可根据需要选择。

action串联适合这些action都是和主要和业务有关的动作,

猜你喜欢