我正在尝试创建一个具有 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"/>
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 内容。这种方式更可取,因为您需要编写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>
您可以在 URL 中添加参数
<s:url id="ajaxTest" value="/AjaxTest.action" escapeAmp="false"><s:param name="id" value="123"/></s:url>