首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用ajax响应列表作为struts2迭代器值?

如何使用ajax响应列表作为struts2迭代器值?
EN

Stack Overflow用户
提问于 2014-06-12 07:05:37
回答 2查看 4.2K关注 0票数 3

我使用以下ajax函数:

代码语言:javascript
运行
复制
 $.ajax({
       url: "userhomeonload",
       contentType: 'application/json',
       type: 'POST',
      datatype:'json', 
       async: true,
       success: function (res) {
                 alert(res[i].name+" "+res[i].rollNo);
    }  });

我在警报框中得到了正确的结果。现在,我想在struts迭代器中使用这个ajax返回的列表,如下所示:

代码语言:javascript
运行
复制
<s:iterator value="list">
   <div>
     <s:property value='name'></s:property>
     <s:property value="rollNo"></s:property>
   </div>
</s:iterator> 

但屏幕上没有显示任何东西。有人能告诉我怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-12 10:16:30

@AndreaLigios请解释第二类结果,即JSP片段,我不知道如何使用JSP片段作为ajax响应。

Main.jsp (已完成)

代码语言:javascript
运行
复制
<%@ taglib prefix="s" uri="struts-tags.tld" %>
<html>
    <head>
        <script>
            $(function(){   
                $('#loader').on("keypress click", function(e) {
                    $.ajax({
                        url: "<s:url action='ajaxAction'/>",
                    }).done(function(result) {
                        $("#target").html(result);
                    });
                });
            });
        </script>   
    </head>
    <body>
        <input type="button" id="loader" />
        <div id="target"></div>
    <body>
</html>

Struts.xml (相关)

代码语言:javascript
运行
复制
<action name="ajaxAction" class="foo.bar.AjaxAction">
    <result>Snippet.jsp</result>
</action>

AjaxAction (相关)

代码语言:javascript
运行
复制
private String testString;
/* Getter and Setter */

public String execute(){
   testString = "I'm loaded with AJAX";
   return SUCCESS;
}

Snippet.jsp (已完成)

代码语言:javascript
运行
复制
<%@ taglib prefix="s" uri="struts-tags.tld" %>

<!-- This is the result page. You can use Struts tags here, 
the generated HTML will be appended to the target div. -->

TestString: <s:property value="testString" />

输出:

代码语言:javascript
运行
复制
<body>
    <input type="button" id="loader" />
    <div id="target">TestString: I'm loaded with AJAX</div>
<body>
票数 1
EN

Stack Overflow用户

发布于 2014-09-09 12:51:34

实际上,场景后面发生的事情是在ajax调用之后,您只得到了JSON对象,而得到了"list“的值

代码语言:javascript
运行
复制
<s:iterator value="list">

OGNL没有将值栈映射到结果页面,要使这种方法在您的情况下有效,您必须使用JS设置属性。

正如Andrea正确解释的那样,如果将结果作为JSP返回,则OGNL将将操作对象的所有属性映射到相应的UI标记。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24178374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档