我在javascript中创建了一个输入标签,并为其提供了属性name

var tdTotalEmployees = row.insertCell(k++);
    tdTotalEmployees.innerHTML = rowData.totEmployees !== null ? '<a href="../emp_list_sm/employee_details?ym=' + rowData.yyyymm + '&s=' + false + '&h=' + true + '" style="color: #0e90d2; text-align:center"  target="_blank"><h4>' + rowData.totEmployees + '</h4></a><input type="hidden" name="migrationRef" value=' + rowData.migrationReference + '>' : ' ------ ';


现在像往常一样,我需要在控制器中使用此变量值,我使用了@RequestParam("migrationRef")String migrationRef
它没有用,

我在request.getParameter("migrationRef")上使用了SOUT,它显示为空。表示没有提供任何值,但是当我检查该元素时,我清楚地看到了该元素的值

 @RequestMapping(value = "/employee_details")
    private ModelAndView getEmployeeList(HttpServletRequest request) {
        ModelAndView mav = new ModelAndView("migrate_salary_hr/pre_migration_emp_list");
        HttpSession session = request.getSession();
        Userdetail loginUser = (Userdetail) session.getAttribute("loginUser");
        System.out.println("migration ref no" +request.getParameter("migrationRef") );
        try {

            mav.addObject("yearMonth", request.getParameter("ym"));
            mav.addObject("status", request.getParameter("s"));
            mav.addObject("historyList", request.getParameter("h"));

            if (loginUser.getEmployee().getRegion().getRegionId() != null && loginUser.getEmployee().getCircle() != null) {
                mav.addObject("Region", loginUser.getEmployee().getRegion().getRegionId());
                mav.addObject("circle", loginUser.getEmployee().getCircle().getCircleId());
            } else {
                mav.addObject("Region", loginUser.getEmployee().getRegion().getRegionId());
            }
            mav.addObject("orderBy", OrderByMap.PREMIGRATIONEMPLIST_ORDERBY);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return mav;

    }


请给我最好的解决方案。

最佳答案

单击链接时,隐藏输入migrationRef的值不会发送到服务器。这就是为什么您看不到服务器端的原因。

我可以看到两种解决方法:


将参数migrationRef添加到链接的href属性中,然后删除无用的<input type="hidden" ...
或者,如果您真的不想在URL中看到参数migrationRef,则必须使用表单将其发布。在这种情况下,窗体的action属性应类似于action="../emp_list_sm/employee_details?ym=...&s=...&h=..."。然后,在Spring MVC控制器中,必须在具有@ModelAttribute属性的Java Bean上使用@RequestParam代替migrationRef

09-25 22:09