解决方案 »
- 小弟是个菜鸟 刚用java jDBC 想写个显示信息的web项目不知道那的问题显示不出来,希望各位大哥看下
- 什么时候会抛出java.lang.reflect.UndeclaredThrowableException
- 怎么解决这个问题java.lang.OutOfMemoryError: PermGen space?
- EJB初学问题
- struts location.href 问题
- jsp 语音聊天
- 今天各位大哥帮帮忙,在线等,看看程序有没有错,(STRUTS的)
- applet+serverlet(jsp,javabean)+数据库 请高手指点
- ssh框架整合问题报错求解决,,,
- mybatis的mapper中的if条件比对map参数中的值失败
- 紧急!请大神帮帮忙!
- myeclipse hibernate reverse engineering出现 An internal error occurred during:
我用struts操作JSON从不这样写,直接用流把Json字符串write到前台,return null,struts.xml只用写个空action就Ok了
其次:你为什么要不自已组装json呢?我都是用JSONObject来自已组装的!
以下就是我返回给调用者数据时使用的方法!
protected void sendResponseData(String responseData){
PrintWriter out = null;
try{
out = getResponse().getWriter();
out.print(responseData);
logger.info("[responseData] = "+responseData);
} catch(IOException ex){
logger.error("sendResponseData IOException:"+ex.getMessage());
} finally{
if(null != out) out.close();
}
}
用console.log(result);
我是参考百度文库里面的教程
http://wenku.baidu.com/link?url=RSfmt8CJ_2xDipOywYUNr9rLULUQ9KC8bb2Vl7GcPmLmkEVupm_4NP25sIuu7jbVEDdEEjbLdrQaHHa1geeyS7n_TpoDFKsEV75COO_OsL3
应该就是action或者是配置文件有问题了。我试了一下,浏览器没有数据。
action里返回success肯定是错误的,你既然要把数据返回给前台,那么你就用write,这样也可以把action里的方法改为void,从而不需要返回null
import java.io.PrintWriter;
import java.util.*;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import com.google.gson.Gson;
import com.opensymphony.xwork2.Action;public class MyActionaa implements Action {
private String msg;
private String canshu1;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
msg="this is my ajax";
System.out.println(canshu1);
Map m=new HashMap<String,Object>();
m.clear();
m.put("canshu1", canshu1);
m.put("msg", msg);
System.out.println(canshu1);
// HttpServletResponse response = ServletActionContext.getResponse();
// PrintWriter out = response.getWriter();
// Gson gson=new Gson();
// String result=gson.toJson(m);
// System.out.println(result);
// out.println(result);
return "success";
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
}
public String getCanshu1() {
return canshu1;
} public void setCanshu1(String canshu1) {
this.canshu1 = canshu1;
}}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- struts-default -->
<!-- json-default -->
<constant name="struts.devMode" value="true" />
<package name="default" extends="json-default" namespace="/">
<action name="getData" class="com.test.action.MyActionaa">
<result type="json" name="success"></result>
</action>
</package>
</struts>js
<script type="text/javascript">
$(document).ready(function(){
$("#heh").click(function(){
$.ajax({
url:"getData.action",
dataType:"json",
data:{canshu1:"this is my can shu."},
success:function(result){
alert("begin");
alert(result.toString());
alert("before parse");
$.each(result, function(index, item){
alert(item);
});
alert("after parse"+result.canshu1+result.msg);
alert(msg.msg);
},
error:function(a,b,c){
alert(b);
}
});
});
});
</script>
谢谢各位好心的朋友,今天我有事了一下,不知道什么原因,竟然成功了。当初为它耗费了一天的时间。这个结果很令人苦笑不得。