javascript - 在 Spring MVC Controller 中需要在 JS 中创建的元素的值

标签 javascript java spring-mvc

我在 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 + '>' : ' ------ ';

现在像往常一样,我需要在我的 Controller 中使用这个变量值,我使用了 @RequestParam("migrationRef")String migrationRef 没用,

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

 @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单击链接时不会发送到服务器。这就是您在服务器端看不到它的原因。

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

  1. Either 添加参数 migrationRef进入href你链接的属性,并删除无用的 <input type="hidden" ...

  2. 或者,如果你真的不想看到参数migrationRef在 URL 中,您必须使用表单发布它。在这种情况下,action表单的属性应该是 action="../emp_list_sm/employee_details?ym=...&s=...&h=..." .然后在 Spring MVC Controller 中你将不得不使用 @ModelAttribute代替 @RequestParam在具有 migrationRef 的 Java Bean 上属性。

关于javascript - 在 Spring MVC Controller 中需要在 JS 中创建的元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52496312/

相关文章:

java - StringBuilder JAVA 的性能问题

java - 如何在 Docker 镜像中安装 Java 9 和 Gradle

java - 如何在 spring-mvc 中将子类传递给 Controller ​​?

java - 在 Java Spring 中,如何创建仅在开发中可见的 URL 路由?

javascript - WebSQL 事务不会在 JS 回调函数中运行

javascript - Node.js 应用程序在 Heroku 上不断崩溃,给出错误引导超时

javascript - 解构和克隆对象/一行?

javascript - 您可以测试 Safari 和 Chrome (iOS) 上的滚动差异吗?

java - 解析xml获取根元素,然后在根标签下动态添加标签

unit-testing - 测试 Controller 是否有意义