我对struts很新。这就是我想要实现的目标。
用JSP-1编写的JavaScript函数触发一个AJAX,它使用动作类从数据库中获取数据,jsp-2使用动作类中的数据并使用struts标记形成某些元素,并将此HTML数据输出到添加HTML的JavaScript函数数据到JSP-1。
现在,我使用JSP-2的原因是使用struts标签制作HTML数据。 JSP-2就像一个为JSP-1形成HTML数据的函数,它永远不会显示。 我知道动作类将JSON对象返回给ajax的正常流程,但我无法弄清楚如何进行中间JSP-2页面。
这是我的struts.xml,用于jsp to action和action to ajax flow。
<action name="ajaxAction" class="ActionClass">
<result name="success" type="json"/>
</action>
我的问题是如何从动作类转到JSP-2然后响应AJAX?
答案 0 :(得分:1)
如果您使用的是jquery,可以这样做
$(document).ready(function(){
var url ="MyAjaxAction.action";
$("#sectionWhereJSP2WillbeThere").load(url);
});
在你的struts动作类中,只需使用普通success
(即视为正常动作)
答案 1 :(得分:0)
因此请使用dispatcher
结果类型而不是json
:
<action name="ajaxAction" class="ActionClass">
<result name="success">JSP-2</result>
</action>
答案 2 :(得分: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>