HTML文件
<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
var $ = jQuery;
$(function(){
$("#introForm").submit(function(){
$.getJSON('ajax/test.action', formInput,function(data){
alert(data.greeting);
});
return false;
});
});
</script>
</head>
<body>
<form id="introForm">
<label >Enter Your Name</label>
<input type="submit">
</form>
</body>
</html>
Struts.xml操作
<package extends="json-default" name="jsonStruts2" namespace="/ajax" >
<action name="test" class="com.vrde.daems.action.TestAction" method="sayHello">
<result type="json"></result>
</action>
</package>
Java Class(TestAction.java)
public class TestAction {
private String greeting;
public String getGreeting() {
return greeting;
}
public void setGreeting(String greeting) {
this.greeting = greeting;
}
public String sayHello()
{
greeting = "Hello Ajax";
return "success";
}
}
当我点击提交按钮时, sayHello()
方法没有被调用。但是当我直接输入网址localhost:8000/ajax/test
时,浏览器会显示json格式的内容
谁能告诉我这是什么问题?
答案 0 :(得分:0)
<script type="text/javascript">
var $ = jQuery;
$(function(){
$("#introForm").submit(function(){
$.getJSON('./test.action', formInput,function(data){
alert(data.greeting);
});
return false;
});
});
</script>
如果您在同一个控制器中引用该动作,这将有效...
答案 1 :(得分:0)
尝试
<script type="text/javascript">
var $ = jQuery;
$(function(){
$("#introForm").submit(function(){
$.getJSON("<s:url action='test' namespace='ajax' includeParams='none' />", formInput,function(data){
alert(data.greeting);
});
return false;
});
});
答案 2 :(得分:0)
这是因为您的脚本中未定义formInput
。您需要将其从getJSON
删除。
<script type="text/javascript">
var $ = jQuery;
$(function(){
$("#introForm").submit(function(){
$.getJSON('ajax/test.action', function(data){
alert(data.greeting);
});
return false;
});
});
</script>
答案 3 :(得分:0)
将您的输入更改为类型按钮,如此<input id="btn_send" type="buttom">
和您的脚本
$("#btn_send").click(function(){
$.getJSON('ajax/test.action', $('#formInput').serialize(), function(data){
alert(data.greeting);
});
});