如何将输入值从表单映射到 findById() 的 URL

How to map input value from form to URL of findById()

/welcome/employees

I have a input area where user enters `"empNo"` and clicks on "Find Employee", mapping to be done to /welcome/employees/find/{id}.

[`it should insted be move to url appended with empNo`][2]

这里我直接输入url一切正常,结果报错

但“查找员工”按钮未映射到输入的 /welcome/employees/find/{id},而是映射到 /welcome/employees/find/。

以及如何将输入的 emp No 映射到 Find Employee button.Please 阐明了一些问题。

只有当我手动输入 URL 时,Controller get employee 方法才能正常工作。

 list.jsp form page


    <input type="text" path="empNo" value="${employee.empNo}" placeholder="Employee No."/>${employee.empNo}
    &nbsp;
    <a href="/welcome/employees/find/${employee.empNo}" class="btn btn-primary">
      <span class="glyphicon glyphicon-search"></span> Find Employee
        </a>




 find.jsp 


    <h2>Employee information</h2>
    <form action="/welcome/employees/find/${employee.empNo}">
    <table class="table table-bordered">
      <tr>
            <th>Employee No.</th>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Gender</th>
            <th>Birth Date</th>


<th>Hire Date</th>
  </tr>
  <tr>
        <td>"${employee.empNo}"</td>
        <td>"${employee.firstName}"</td>
        <td>"${employee.lastName}"</td>
        <td>"${employee.gender}"</td>
        <td>"${employee.birthDate}"</td>
        <td>"${employee.hireDate}"</td>
 </tr>
  </table>
</form>

返回

@RequestMapping(value = "/employees/find/{empNo}", method = RequestMethod.GET)
public String getEmployee(@PathVariable("empNo") long empNo, Model model){
    Employee employee1=this.employeeService.findEmployeeById(empNo); 
    model.addAttribute(employee1);
    return "employees/find";
}

当我点击查找员工时,它会指向

http://localhost:8080/welcome/employees/find/

这里是没有任何javascript的简单方法。

listing.jsp

<form action="/welcome/employees/find" method="get"> 
    <input name="empNo" placeholder="Employee No."/> 
    <button type="submit">Find Employee</button> 
</form>

说明:当您执行 ${employee.empNo} 时,您将从 employee 对象内的 empNo 变量中获取值。但是你不想使用这个值来查找。您想使用文本框中的值来查找。

控制器

@RequestMapping(value = "/employees/find", method = RequestMethod.GET)
public String getEmployee(@RequestParam("empNo") long empNo, Model model){
    Employee employee1=this.employeeService.findEmployeeById(empNo); 
    model.addAttribute(employee1);
    return "employees/find";
}

除非您想做某事,否则 find.jsp 中不需要 <form>