0

我对 struts 很陌生。这就是我想要实现的目标。

用 JSP-1 编写的 JavaScript 函数触发一个 AJAX,它使用动作类从数据库中获取数据,而 jsp-2 使用动作类中的数据并使用 struts 标签形成某些元素,并将此 HTML 数据输出到 JavaScript 函数,该函数将 HTML 数据添加到JSP-1。

在此处输入图像描述

现在,我使用 JSP-2 的原因是使用 struts 标签制作 HTML 数据。JSP-2 就像一个函数,它为 JSP-1 形成永远不会显示的 HTML 数据。我知道动作类将 JSON 对象返回给 ajax 的正常流程,但我无法弄清楚如何处理中间 JSP-2 页面。

这是我的 struts.xml for jsp to action 和 action to ajax flow。

<action name="ajaxAction" class="ActionClass">
            <result name="success" type="json"/>
 </action>

我的问题是如何从动作类转到 JSP-2 再响应 AJAX ?

4

3 回答 3

1

如果您使用的是 jquery,您可以这样做

$(document).ready(function(){
    var url ="MyAjaxAction.action";
    $("#sectionWhereJSP2WillbeThere").load(url);  
 });

在你的struts动作类中,只需使用正常success(即视为正常动作)

于 2012-11-21T11:19:01.753 回答
0

所以不要使用dispatcher结果类型json

<action name="ajaxAction" class="ActionClass">
   <result name="success">JSP-2</result>
</action>
于 2012-11-21T11:17:23.420 回答
0

无需考虑 JSP-1。它只是您的 Ajax 应用程序的交付机制。问题是您提出的 Ajax 请求需要什么样的响应。您的 Javascript Ajax 客户端需要 JSON 响应还是 HTML 片段?

如果它需要 json,那么我认为不需要 JSP-2(尽管您可以使用 jsp 创建 json ——但是当 struts 提供 json 结果类型为您执行此操作时,几乎没有理由这样做)。

如果它需要一个 HTML 片段,那么创建它的最佳方法是使用 JSP,大概是您的 jsp-2。如果是这种情况,您需要将结果类型更改为“dispatcher”,这实际上是默认类型,即您不需要指定它。

<action name="ajaxAction" class="ActionClass">
            <result name="success">/path/to/jsp-2</result>
 </action>
于 2012-11-21T15:14:13.103 回答