gpt4 book ai didi

struts - 瓷砖框架 : refresh only body content

转载 作者:行者123 更新时间:2023-12-04 23:27:06 24 4
gpt4 key购买 nike

我们有一个包含页眉、菜单、正文和页脚的 Tiles 布局页面。在此布局中,每当用户在菜单列表中执行某些操作时,整个布局(包括页眉、菜单和页脚)都会令人耳目一新。我希望页眉、菜单、页脚是静态的,并且只有正文部分应该更新。

有什么办法可以防止刷新页眉、菜单和页脚,并仅更新可以使用 Tiles 实现的菜单单击上的正文内容?

最佳答案

为此,您需要使用 ajax 调用。一般程序是:

1.- 创建并定义一个磁贴,作为您的基础,由页眉、正文和页脚组成,如下所示:

<div id='headerTile'>whatever goes here...</div> <!--this is baseHeader.jsp-->
<div id='bodyTile'>whatever goes here....</div> <!--this is baseBody.jsp-->
<div id='footerTile'>whatever goes here...</div> <!--this is baseFooter.jsp-->

让我们将这些 div 中的每一个视为您定义中的一个 tile:
<definition name="layoutBase" path="/whateverPathItIs/layoutBase.jsp">
<put name="header" value="/whateverPathItIs/baseHeader.jsp"/>
<put name="body" value="/whateverPathItIs/baseBody.jsp" />
<put name="footer" value="/whateverPathItIs/baseFooter.jsp" />
</definition>

2.- 创建和定义所有不同的jsp 来替换你的body 内容,请记住这个jsp 必须只包含body 元素。假设您准备好在您的页面中显示另外 2 个正文内容,每个内容都是一个磁贴:
<div id='bodyContent1'>whatever goes here again...</div> <!--this is content1.jsp-->

<div id='bodyContent2'>whatever goes here again 2</div> <!--this is content2.jsp-->

3.- 在这一点上,您拥有基本的 jsp tile 和 2 个其他包含正文内容的 jsp。现在我们需要一个作为服务的 struts Action ,根据 ajax 请求返回相应的主体。 这样做是正常的操作,并在最后的 mapping.findForward 方法中,返回包含您的主体的 jsp .您可以为每个正文内容创建一个操作,也可以为每个正文创建一个包含一个方法的 DispatchAction。第二个选项更清晰,操作将如下定义:
<action path="/bodySwitcher" 
type="BodySwitcherAction"
parameter="method"
scope="request"
>
<forward name="content1" path="/pathToJsp/content1.jsp"/>
<forward name="content2" path="/pathToJsp/content2.jsp"/>
</action>

4.- 要切换内容,使用javascript 或jquery 进行ajax 调用并将返回的jsp 加载到您的主体中。这是在 jQuery 中切换内容的方法示例,使用 .load() 作为 ajax 调用:
function switchContent(whichContent){
$('#bodyTile').children().remove();
$('#bodyTile').load("/pathToYourApp/bodySwitcher.do?method="+whichContent);
}

不要因为答案有多长而气馁,我只是想清楚地解释一下。这实际上很容易做到,问题与 jquery/javascript 的相关性比其他任何事情都多,唯一的细节是如何将 struts 操作用作服务。祝你好运。

关于struts - 瓷砖框架 : refresh only body content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11028941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com