JQuery Ajax 不能在带有 Struts 的 JSP 中工作

JQuery Ajax not working in JSP with Struts

本文关键字:JSP 工作 Struts Ajax 不能 JQuery      更新时间:2023-09-26

我正在尝试创建一个具有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>

标签:

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

Action

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() {
    }    
}

Ajax 可以一直传递参数而不是 json 并返回 json 结果。您可以使用Struts2 JQuery插件和Struts2 JSON插件。它具有标记,您可以在 JSP 中使用这些标记在呈现页面时生成 HTML 和 jQuery 内容。这种方式更可取,因为您需要编写更少的 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>

在那里,您可以向 URL 添加参数

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