我希望我的jQuery脚本表现为直接链接调用(我非常确定这不是一件难事),我接下来会解释:
我有一个带有jeasyui组件(数据网格)的.jsp页面,列出了我的应用程序中的项目,可以在其中一行中请求调用控制器中的.GET方法以设置某个对象(在这种情况下是一个Project类)并调用另一个.jsp页面来执行此实例中的更新任务(通常,实际上......)。
当我通过a直接调用清单.jsp页面中的方法时,控制器处理HTTP GET请求并返回更新.jsp页面,通常。
当我尝试通过jQuery(为了使用引用的DataGrid)执行相同的操作(步骤2)时,调用控制器方法,正确传递参数,但响应不会跟踪到.jsp更新页面。
我们来看看代码:
控制器
@RequestMapping(method=RequestMethod.GET)
public Project setUpForm(HttpServletRequest req,
HttpServletResponse resp,
@RequestParam(value="id", required=false)
Long id, Model model, ModelMap modelMap){
... do stuff ...
/* CONTROLER IS WORKING FINE */
if(id==null){
//that's a new project!
Project project = new Project();
return project;
} else {
//an ID was passed and means an existing one!
Project project = mpService.getProjectById(id);
return project;
}
}
列出JSP页面(项目列表)
<!-- ... datagrid code... next is working fine! (just a test to controller) -->
<a href="<c:url value='project/MaintainProjectFrm?id=11'/>"></a>
<!-- ... but, when I call jsp page through JQuery, what I must do in order to use dataGrid component (through an event), controller is called but editing jsp page is not returned -->
<a href="javascript:void(0)" class="easyui-linkbutton"
iconCls="icon-edit" plain="true" onclick="projectEdit()">
Edit </a>
JavaScript文件:
function projectEdit() {
var row = $('#dgProject').datagrid('getSelected'); //gets DataGrid object and its selected row
if (row) {
// at this point controller is called correctly but response doesn't go to the edit/update page.
$.get("project/MaintainProjetoFrm", {id: row.id});
}
}
您对可能发生的事情有任何想法吗?
感谢您的帮助!
答案 0 :(得分:0)
对于有类似问题的人:
使用{j}在.jsp页面上的window.location.replace
方法或由其引用的.js文件来实现此行为。
$('#dgProject').datagrid({
onCheck: function(rowIndex,rowData){
window.location.replace("/path/MaintainProjectFrm?id="+rowData.id);
}
});