客服端调用 $.ajax({
url:'menuAction.action?menuName='+menuName+'&userId='+userId,
type:'post',
dataType:'json',
error : function(){
alert(url);
},
success:function(data){
if(data!=null){
$("#tree1").html("");
$.each(data.subMenus,function(i,value){
$("<li><a href='"+value.menuurl+"' target=main class='idx-treelist-w1' onClick='if(old_Obj!=null){old_Obj.style.color="#535A74"}this.style.color="#732cc2";old_Obj=this;'>"+value.menudescription+"</a></li>").appendTo($("#tree1"));
});
}
}
});服务端:调用的是cn.com.ivisions.action.CmsMenuAction这个action的listSubMenus这个方法。public String listSubMenus(){ String menuName=getRequest().getParameter("menuName").toString(); int userId=Integer.valueOf(getRequest().getParameter("userId")).intValue();
try{
subMenus=cmsMenuService.listSubMenus(menuName, userId);
//JSONArray json = JSONArray.fromObject(subMenus);//List生成JSON对象
//toInStream(json.toString());//将生成的JSON对象转成InputStream
}catch(Exception ex){
ex.printStackTrace();
}
return SUCCESS;
}struts2的配置文件,返回json数据的配置。
<package name="json" namespace="/" extends="json-default">
<action name="menuAction" class="cn.com.ivisions.action.CmsMenuAction" method="listSubMenus">
<result name="success" type="json">
<param name="includeProperties">
subMenus.*
</param>
</result>
</action>
</package>想问为什么我那个url访问为什么不进入配置调用的listSubMenus这个action的 方法。急!!!!!!!!!!!
url:'menuAction.action?menuName='+menuName+'&userId='+userId,
type:'post',
dataType:'json',
error : function(){
alert(url);
},
success:function(data){
if(data!=null){
$("#tree1").html("");
$.each(data.subMenus,function(i,value){
$("<li><a href='"+value.menuurl+"' target=main class='idx-treelist-w1' onClick='if(old_Obj!=null){old_Obj.style.color="#535A74"}this.style.color="#732cc2";old_Obj=this;'>"+value.menudescription+"</a></li>").appendTo($("#tree1"));
});
}
}
});服务端:调用的是cn.com.ivisions.action.CmsMenuAction这个action的listSubMenus这个方法。public String listSubMenus(){ String menuName=getRequest().getParameter("menuName").toString(); int userId=Integer.valueOf(getRequest().getParameter("userId")).intValue();
try{
subMenus=cmsMenuService.listSubMenus(menuName, userId);
//JSONArray json = JSONArray.fromObject(subMenus);//List生成JSON对象
//toInStream(json.toString());//将生成的JSON对象转成InputStream
}catch(Exception ex){
ex.printStackTrace();
}
return SUCCESS;
}struts2的配置文件,返回json数据的配置。
<package name="json" namespace="/" extends="json-default">
<action name="menuAction" class="cn.com.ivisions.action.CmsMenuAction" method="listSubMenus">
<result name="success" type="json">
<param name="includeProperties">
subMenus.*
</param>
</result>
</action>
</package>想问为什么我那个url访问为什么不进入配置调用的listSubMenus这个action的 方法。急!!!!!!!!!!!
能不能请求道action,直接在浏览器敲击入地址,如果能访问则肯定是在js中写的脚本有问题。
楼主js中的脚本是采用相对路径,除非指定base标签到根路径,否则楼主要观察当前路径是否是根路径了。如果在浏览器上直接敲击地址仍然不能访问到,那么楼主是否有其他的比如验证文件等的加入导致在拦截器端就应经被返回了,从而在workflow拦截器返回input结果类型等等等等。ps,debug一下是最好的方式。
subMenus.*这个是cn.com.ivisions.action.CmsMenuAction的属性。具体是private List subMenus,我这样配是取得subMenus这个集合的所有值,其实我之前这样配置用ajax请求可以取到值,但是不知道为什么后来就不行了,不知道是不是jar包的关系。
改成struts-default试试。
就已经继承了"struts-default"了楼主的正则写的有问题