JQuery Ajax在Struts

时间:2016-01-22 05:44:20

标签: javascript jquery ajax jsp struts2

我正在尝试使用Ajax的功能创建一个Web应用程序演示。但是,Ajax似乎无法使用JQuery。

我还没有给出任何回复,但我认为警报应该有效。但是,单击按钮后没有任何反应。

Ajax参数可能有问题吗?我仍然不清楚如何将变量从Ajax传递到动作和另一种方式。

任何建议都表示赞赏。

JQuery的:

<script>
    $(document).ready(function(){
        $("#select").click(function() {
            $.ajax({
                url:'/db/database!selectAll.action',
                data:'{}',
                type:'POST',
                dataType:"JSON",
                success:function(data){
                    alert(data);
                }
            });
        });
        $("#delete").click(function() {
            alert("aa");
        });
    });
</script>

HTML标签:

<input id="select"type="button" value="select"/>

动作:

package com.rwy.demo.web.db;

import com.opensymphony.xwork2.ActionSupport;
import com.rwy.demo.bean.Person;
import com.rwy.demo.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * Created by cbl on 2016/1/22.
 */
public class DatabaseAction extends ActionSupport{
    @Autowired
    private PersonService personService;


    public void selectAll() {
        List<Person> personList = personService.selectAllPerson();    
    }
    public void update() {

    }
    public void delete() {

    }
    public void add() {

    }    
}

1 个答案:

答案 0 :(得分:0)

Ajax动作传递参数而不是json并返回json结果。您可以将Struts2 JQuery pluginStruts2 JSON plugin一起使用。它具有标记,您可以在JSP中使用这些标记在呈现页面时生成HTML和jQuery内容。这种方式更可取,因为您需要编写 less javascript代码并减少错误。例如,基本的ajax调用

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<html>
  <head>
    <sj:head/>
  </head>
  <body>
    <div id="div1">Div 1</div>
    <s:url id="ajaxTest" value="/AjaxTest.action"/>

    <sj:a id="link1" href="%{ajaxTest}" targets="div1">
      Update Content
    </sj:a>
  </body>
</html>

您可以在此处添加参数

<s:url id="ajaxTest" value="/AjaxTest.action" escapeAmp="false"><s:param name="id" value="123"/></s:url>