【问题标题】:update single object and send through url using spring使用spring更新单个对象并通过url发送
【发布时间】:2017-02-07 05:08:47
【问题描述】:

home.jsp

    <c:forEach var="row" items="${dataList}">

    <tr>
     <td>
     <input type="text"  value="${row[0]}" readonly/>
    </td> 
    <td>
         <input type="text"  value="${row[1]}"/>
    </td>
    <td>
         <input type="text"  value="${row[2]}"/>
    </td>
    <td>
         <input type="text"  value="${row[3]}"/></td>
    <td>
         <input type="text"  value="${row[4]}"/>
    </td>
    <td>
         <input type="text"  value="${row[5]}"/>
    </td>
    <td>
         <input type="text"  value="${row[6]}"/>
    </td>
    <td>
    <a href="edit" ><input type="button" value="Update"></a>
    </td>
    <td>
    <a href="delete"><input type="button" value="Delete"></a>
    </td>
    </tr>
    </c:forEach>

我想要只编辑过的员工的数据到控制器,而不是所有员工,尝试了每个注释。请建议将其发送到控制器的最佳方法

我的控制器代码

@RequestMapping("/edit")
    public ModelAndView editEmployee(@RequestParam(value="employee") Employee emp) {

        System.out.println(emp);
        List dataList =service.editEmployee(emp);
        if(dataList.equals("")|| dataList.equals(null))
        {
            mav.addObject("msg", "Failed to edit data");
            mav.setViewName("home");

        }

        else
        {

            mav.addObject("dataList",dataList);
            mav.setViewName("home");
        }
        return mav;
    }

我想要在请求参数中编辑过的员工数据。通过 url 发送数据的最佳方式是什么。我有一个用于输入的员工模型类

【问题讨论】:

  • 建议的答案对您没有帮助。您需要的注释是@ModelAttribute("employee") Employee。您需要为每位员工提供一个单独的表格,而不是为整个表格提供一个表格。有许多教程向您展示了 Spring MVC 中的基本绑定工作。例如:dzone.com/articles/using-spring-mvc%E2%80%99s
  • 我知道@ModelAttribute。问题是我不想要一个单独的表单来编辑和更新每个员工的单个员工编辑。我只希望编辑的员工使用更新HibernateTemplate.update(emp)。有什么解决办法吗??
  • In 建议阅读 Spring MVC 手册并了解基础知识。 docs.spring.io/spring/docs/current/spring-framework-reference/…

标签: java hibernate jsp spring-mvc


【解决方案1】:

首先,您必须使用要更新的员工 ID 填充员工对象,然后对其进行更新。将员工 ID 从 jsp 传递到控制器并在控制器中使用 PathVariable

@RequestMapping("/edit/{employeeId}")
public ModelAndView editEmployee(@PathVariable Long employeeId, @RequestParam(value="employee") Employee emp) {
    emp = employeeDAO.findbyQuery("findByEmployeeId", employeeId).get(0);
    System.out.println(emp);
    List dataList =service.editEmployee(emp);
    if(dataList.equals("")|| dataList.equals(null))
    {
        mav.addObject("dataList",dataList);
        mav.setViewName("home");
    }

    else
    {
        mav.addObject("msg", "Failed to edit data");
        mav.setViewName("home");
    }
    return mav;
}

【讨论】:

  • 但是填充的员工对象会包含对控制器中对象所做的编辑吗? @苏曼贝哈拉
  • 如果您在 jsp 中使用 spring 表单,那么 Employee Object 将包含对控制器中对象所做的编辑
  • 但是我使用 html 输入并通过 url 发送而不是提交。什么可能是获取编辑对象的可能方法。我不想要一个新的 jsp 进行编辑
  • 我认为这可能有助于您尝试一下。您的 jsp 中的小变化。通过 标记中的员工 ID。 一个>
猜你喜欢
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 2017-12-16
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多