首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

struts+ajax有关问题

2013-07-01 
struts+ajax问题@Overridepublic class ShopAction extends ActionSupport {public String execute(){try

struts+ajax问题


@Override
public class ShopAction extends ActionSupport {
public String execute(){
try {
shopService.addShop(shop);
return result = SUCCESS;
} catch (Exception e) {
// TODO: handle exception
System.out.println(e.toString());
}
return result = SUCCESS;
}

public String showShop() throws Exception{
shop = shopService.getShopDAO().findById(shopId);

return SUCCESS;
}

public String getShopList(){
if (page == null) {
System.out.println("page is null!!!!!!");
return ERROR;
}
if(shop == null){
System.out.println("shop is null");
}
page = shopService.getShopDAO().getShopListByTags(shop.getType(), shop.getArea(), page);
return SUCCESS;
}
}


struts.xml

<package name="ajax" namespace="/" extends="json-default">
<interceptors>
<interceptor-stack name="myJson">
<interceptor-ref name="json"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myJson"/>
<action name="addShop" class="ShopAction">
<result type="json"></result>
</action>
</package>



$(document).ready(function(){
$('#submit').click(function(){
var params = {
'shop':{
'name':'噶',
'address':'haha',
'area':'haha',
'type':'haha',
'briIntro':'ahha',
'phone':'027-12345678'
}
};
params = JSON.stringify(params);
submit(params);
});
});

function submit(params){
$.ajax({
type:"post",
dataType:"text",
data:params,
url:"addShop.action",
contentType:"application/json",
success:function(json){
alert(json);
var obj = $.parseJSON(json);
var result = obj.result;
alert(result);
},
error:function(){
alert("error");
}
});
}


js提交ajax请求到后台之后
控制台输出这样的结果:
page is null!!!!!!

很明显服务端在执行execute()之后又执行了getShopList()
为什么会这样?怎么样才能让他不执行getShopList() Ajax Struts

JSON
[解决办法]
getShopList,换个名字,不要get开头,struts+ajax他会自动把你所有get开头的返回值封装到json中,所以你的get执行了,你的方法不要get开头就行,如果你硬是要get开头请加上@JSON(serialize=false)

热点排行