2013-03-11 61 views
0

我有一个需求(基于struts 1.xx的Java EE应用程序),其中我必须通过Struts动作类获取Java对象AJAX以便在UI上显示并以表格的形式呈现。通过ajax从struts 1.xx动作中检索java对象(arraylist/hashmap)

该对象将是动态的,因为它将通过Web服务进行填充,该服务将在操作本身中调用。

有无论如何通过AJAX(javascript/jquery)获取对象吗?该动作将在点击UI标签时被调用,并且我必须在该特定标签中显示该动作的响应(arraylist/hashmap对象)。

请看看,我正在研究一个现有的应用程序,我只能使用Struts 1.xx框架。

下面是我会在动作类执行的步骤:

public class AjaxAction extends Action { 
public ActionForward execute(final ActionMapping mapping, final ActionForm form, 
      final HttpServletRequest request,final HttpServletResponse response) 

    {  
     // Step1 :webservice call 
        //Step 2: parse the webservice reponse and place it inside a hashmap or arraylist object 

       return null; 
    } 
} 

第三步:要通过AJAX获取填充的HashMap/ArrayList对象并在其即时通讯不知道如何做到这一点的UI显示。 任何示例或指向某些教程的指针都会有所帮助。

回答

0

你可以使用jQuery ajax。

jQuery ajax

+0

感谢您的回复,但我的要求不是获取单个或多个预定义的文本值,而是在输出中获取n个不同的java obejcts(字符串,整数等)。总之,我想要封装java对象在ajax上的输出不仅仅是一个文本输出。 – user1697113 2013-03-11 12:20:36

+1

@ user1697113您在响应中没有得到“Java对象”,就会得到文本。你如何解释*文字是什么改变。例如,你可以返回序列化为JSON的对象。 – 2013-03-11 13:24:49

+0

好吧,这是有道理的,我不知道这个限制。谢谢您的帮助。 – user1697113 2013-03-13 05:30:42

0

至于我的问题,我发现了一个简单的解决方案,我不知道是否回答我的问题,但它帮我解决。

我使用jQuery UI的标签框架http://jqueryui.com/tabs/#ajax

而不是让整个对象从操作它的设施来调用行动本身。 这可以通过在选项卡中提供操作的url来完成。

<li><a href="myAction.do">CALL a JSP VIA AJAX</a></li> 

现在这个选项卡将载入另一个jsp,它将被动作本身调用。因此,它不必通过ajax发送大量数据,而是可以通过发起操作调用标签中的整个jsp。