Spring,jQuery:如何实现相同的行为?

时间:2014-01-16 20:38:07

标签: jquery spring

我希望我的jQuery脚本表现为直接链接调用(我非常确定这不是一件难事),我接下来会解释:

  1. 我有一个带有jeasyui组件(数据网格)的.jsp页面,列出了我的应用程序中的项目,可以在其中一行中请求调用控制器中的.GET方法以设置某个对象(在这种情况下是一个Project类)并调用另一个.jsp页面来执行此实例中的更新任务(通常,实际上......)。

  2. 当我通过a直接调用清单.jsp页面中的方法时,控制器处理HTTP GET请求并返回更新.jsp页面,通常。

  3. 当我尝试通过jQuery(为了使用引用的DataGrid)执行相同的操作(步骤2)时,调用控制器方法,正确传递参数,但响应不会跟踪到.jsp更新页面。

  4. 我们来看看代码:

    控制器

    @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});
        }
    }
    

    您对可能发生的事情有任何想法吗?

    感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

对于有类似问题的人:

使用{j}在.jsp页面上的window.location.replace方法或由其引用的.js文件来实现此行为。

$('#dgProject').datagrid({
    onCheck: function(rowIndex,rowData){
         window.location.replace("/path/MaintainProjectFrm?id="+rowData.id);
    }
});