我用下面这段jsp代码(代码一)调用mvc里面的方法的时候,调用不到,从控制台的打印信息,可以看到有申请,但是我在bsProManage最开始加的打印信息没有看见打印,说明没有调用到该方法,但是在我最下面把代码(代码二)调整成另外一种方式就调用成功了,最下面那个方式代码就太复杂了,就希望简单点搞定,关键是代码一这段代码在有的窗口可以调用成功,有的窗口调不成功,请教一下各位这个会是怎么回事?代码一 //删除操作
$("#btn_delete").click(function() {
var row = wtx.bs.getOneSelectRow($table);
if (row) {
wtx.yesno("删除操作不能恢复,确定要删除?", function() {
var params = row;
params.oper = "del";
wtx.post("sysadmin/promanage/bsProManage", params, function() {
//删除数据
wtx.bs.deleteRow($table, params.projectid);
});
});
}
});
代码一对应的后台打印信息
10:11:10.960 [http-bio-8080-exec-8] INFO  com.wtx.qxgl.common.filter.LoginFilter - 请求地址:/sysadmin/promanage/bsProManage -> authc
10:11:10.961 [http-bio-8080-exec-8] INFO  com.wtx.qxgl.common.RedisManager - 获取会话:wtx:session:1980847d-c7f2-4011-ad5f-013ffa453072
代码二如果我把这段代码修改成以下方式就可以正常调用到:
var $modal2 = $('#modal2').modal({
show : false
}); //删除操作
$("#btn_delete").click(function() {
var row = wtx.bs.getOneSelectRow($table);
if (row) {
showModal2($(this).text(), "del", row);
$("#btn_query").click() ;
}
}); $modal2.find('.delete').click(
function() {
var row = {};
 
  $modal2.find('input[name]').add($modal.find('select')).each(
function() {
row[$(this).attr('name')] = $(this).val();
});
 
wtx.post("sysadmin/promanage/bsProManage", row, function() {
$modal2.modal('hide');
if (("del" == row.oper) )  {
wtx.bs.deleteRow($table, params.projectid);
alert("删除成功!")
}
});
});下面是新添加的html代码:
<div id="modal2" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"
aria-label="Close">
<span aria-hidden="true">&times;</span>
</button> <h4 class="modal-title"></h4> </div> <div class="modal-body">
<div id="delform">
<input type="hidden" name="oper">
<div class="row">
<div class="col-sm-6" >
<label>项目编码</label> <input type="text" class="form-control"
name="projectid" placeholder="项目编码">
</div>
<div class="col-sm-6">
<label>项目名称</label> <input type="text" class="form-control"
name="projectname" placeholder="项目名称">
</div>
</div> 
</div>
 


<div id="mytree" class="tree-demo" treedict="table=sys_project">

</div>


<div class="modal-footer">
<button type="button" class="btn btn-default delete">删除</button>

<button type="button" class="btn btn-default"
data-dismiss="modal">取消</button>
</div>
</div>
</div>

</div>
<!-- /.modal2-content --> </div>
</div>
代码二对应的后台打印信息
10:11:10.960 [http-bio-8080-exec-8] INFO  com.wtx.qxgl.common.filter.LoginFilter - 请求地址:/sysadmin/promanage/bsProManage -> authc
10:11:10.961 [http-bio-8080-exec-8] INFO  com.wtx.qxgl.common.RedisManager - 获取会话:wtx:session:1980847d-c7f2-4011-ad5f-013ffa453072
开始调用bsProManage

解决方案 »

  1.   


    参数应该是没有问题,如果是参数有问题也应该报错,现在是都没有进那个bsProManage 这个方法。
      

  2.   

    你检查一下是不是调用路径的问题:
    用 chrome 执行代码一,打开开发者工具,执行调用之后看看有没有 404 之类的错误。
      

  3.   

    你在
    var row = wtx.bs.getOneSelectRow($table);
    这一行加个断点,然后看看这一行执行了没:
    wtx.post("sysadmin/promanage/bsProManage", params, function() 
    或者执行该句的时候有什么提示。
      

  4.   

    用绝对路径,也就是contextPath + 具体地址 访问后台服务,我估计你的jsp应该不在同一个目录
      

  5.   

    围观大佬  围观大佬java中的this关键字
    https://www.jianshu.com/p/bbe5c101c0c6