更新单个对象并使用spring通过url发送

时间:2017-02-07 05:08:48

标签: java hibernate jsp spring-mvc

针对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>

Updates and deletes employees

我只希望编辑员工的数据到控制器,而不是所有员工,尝试每个注释。请指出将其转换为控制器的最佳方式

MyController代码

@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发送数据的最佳方式。我有一个用于输入的员工模型类

1 个答案:

答案 0 :(得分:0)

首先,您必须使用您要更新的员工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;
}