Tyring一个简单的json示例,但它显示错误。 我在类路径中包含了gson-2.2.3.jar。
我正在使用netbeans 7.1。该程序没有部署。
Apache tomcat日志显示:
Unable to load configuration. - action - file:/D:/APP/webApp1/build/web/WEB-INF/classes/struts.xml:10:73
Caused by: Error building results for action sayHi in namespace - action - file:/D:/APP/webApp1/build/web/WEB-INF/classes/struts.xml:10:73
Caused by: There is no result type defined for type 'json' mapped with name 'success'. Did you mean 'json'? - result - file:/D:/APP/webApp1/build/web/WEB-INF/classes/struts.xml:11:33
我正在尝试简单的例子。请看看有什么问题。 行动类
public class AjaxActions extends ActionSupport {
private String name;
private String greeting;
public String sayHi() {
greeting = "HI " + name;
return ActionSupport.SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGreeting() {
return greeting;
}
public void setGreeting(String greeting) {
this.greeting = greeting;
}
}
struts.xml中
<package extends="struts-default,json-default" name="ajax-package" namespace="/ajax">
<action class="example.AjaxActions" method="sayHi" name="sayHi">
<result type="json">
</result>
</action>
</package>
在jsp文件中
<form action="" id="introForm">
<label for="name">Enter Your Name</label>
<input name="name">
<input type="submit">
</form>
<script>
$(function(){
$("#introForm").submit(function(){
var formInput=$(this).serialize();
$.getJSON('ajax/sayHi.action', formInput,function(data) {
$('.result').html('' + data.greeting + '');
return false;
});
});
</script>
答案 0 :(得分:1)
根据项目库中的struts2版本添加struts2-json-plugin.jar
。
如果您使用struts2.3.4则使用struts2-json-plugin2.3.4.jar
并在struts.xml
<package extends="struts-default,json-default"
至
<package extends="json-default"
。
并使用以下HTML代码。
<form action="" id="introForm">
<label for="name">Enter Your Name</label>
<input type="text" id="name" name="name">
<input onclick="javascript:getResultData();" type="submit">
<span id="resultHtml"></span>
</form>
<script>
function getResultData(){
var formInput=$("#name").val();
vat inputData={"name":formInput}
$.getJSON('ajax/sayHi.action', inputData,function(data) {
$("#resultHtml").html('' + data.greeting + '');
return false;
});
}
</script>