struts2+json+Jquery的问题 100

我在action组件中这样定义publicStringsearch()throwsException{System.out.println(this.getKeyword... 我在action组件中这样定义
public String search() throws Exception{
System.out.println(this.getKeywords());
Map<String, List<House>> map=new HashMap<String, List<House>>();
map.put("house", new HouseBizImpl().findHouse(this.getKeywords()));
System.out.println("map的值"+map);
JSONObject obj=JSONObject.fromObject(map);
//调用json对象的toString方法转换为字符串然后赋值给result
System.out.println(obj.toString());
result=obj.toString();
return "success";
}
能打印出Map来
我在xml中这样配置
<package name="sajax" extends="json-default" namespace="/sajax">
<!-- 搜索房屋信息 -->
<action name="search" class="com.action.HouseAction" method="search">
<result type="json">
<param name="root">result</param>
</result>
</action>
</package>
然后在js文件中这样写
function Search() {
var keywords = $("#keywords").val();
$.ajax(
{
type:"post",
url:"./sajax/search.action",
data:"keywords="+keywords,
dataType:"json",
success:function(data){
alert("success");
}
}
);
}
有什么错误么 .一直没有什么效果...求解
展开
 我来答
568145421
2012-04-24 · 知道合伙人软件行家
568145421
知道合伙人软件行家
采纳数:1353 获赞数:6756

向TA提问 私信TA
展开全部
你好,这样看也看不错来。这样吧,先调试一下。看下后台的程序对不对。
你先自己简单的先一个表单,然后提交一下。看看正确不,主要是看后台能否得到数据并正确响应。如果都能,那么就在ajax这块找找问题。如果后台没有输出,那么就看日志,问题也就好排除了。
更多追问追答
追问
我后台能接收前面传来的数据 我估计是回调时错了
追答
那你的意思是,success那个消息框弹不出来吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TTT唐唐TTT
2012-04-25 · TA获得超过244个赞
知道小有建树答主
回答量:227
采纳率:100%
帮助的人:90.7万
展开全部
你既然用了Struts2的的json配置了
那么action就不用你那么写了;
给你个例子,下面的
str和n就是直接放到json里面了
不用你在out.print了

private find userDao;
public String str;
public String n;

public String aa(){
System.out.println(str);
List list=userDao.findAll();
this.n=list.size()+"";
//System.out.println(list.size());
return SUCCESS;
}

public void setUserDao(find userDao) {
this.userDao = userDao;
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public String getN() {
return n;
}
public void setN(String n) {
this.n = n;
}

前台
$.post(url,{str:str},function(data){
$.each(data,function(id,item){
$("#dd").append("str:"+item.str+";")
$("#dd").append("n:"+item.n+";<br>")
})
},"json");
追问
我是在前台传一个参数给action .通过这个参数查询  返回的是List对象的  .然后前台页面上通过标签显示最终的答案的
追答
public List list;

public List getList() {
return list;
}

public void setList(List list) {
this.list = list;
}

public String aa(){
System.out.println(str);
list=userDao.findAll();
this.n=list.size()+"";
//System.out.println(list.size());
return SUCCESS;
}

前台
$.post(url,{str:str},function(data){
$.each(data.list,function(id,item){
//item这里代表集合中的对象;我放的是用户,item.name就是对象中的name属性
$("#dd").append("list:"+item.name+";")
})
},"json");
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友01c78b7
2012-05-08
知道答主
回答量:24
采纳率:0%
帮助的人:19.4万
展开全部
JSONObject obj=JSONObject.fromObject(map);
错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式