从 jsp 获取字符串以创建另一个 jsp

Getting a string from a jsp to create another jsp

有没有办法从文本区域获取字符串,例如从 jsp 获取字符串,然后,当我单击按钮时,将该字符串发送到控制器,控制器在一种方法,该方法依次 returns 基于该字符串的列表形式的查询,然后使用该列表显示另一个 jsp。

到目前为止我已经试过了:

<form:form method="post" action="UserContracts" commandName="somedata" >
<table>
<tr>
    <td><h3 style="color:#0080ff;">Enter CNP :</h3></td>
    <td><form:input path="cnp" /></td>
<tr>
    <td colspan = "2"><input name="cnp" type="text"/></td>
<tr>
    <td colspan="2">
        <br>
        <input type="submit" value="Find" class="button" />
    </td>
</tr>

@RequestMapping("/uc")
public String userContract(@ModelAttribute("somedata") String cnp,HttpServletRequest request, Model model) 
{   

    List<Contract> ContractList = new ArrayList<Contract>();

    ContractList = cl.getContractsOfUser(cnp);

    model.addAttribute("ContractList", ContractList);
    System.out.println("In uc");
    return "UserContracts";
}

action 属性指示将处理该表单的后端端点。在您的情况下,您放置了 "UserContracts",但是您正在将方法 userContract 映射到“/uc”。这些必须匹配才能使请求命中该控制器,更改表单操作或端点 url 使它们相同。

这最终奏效了。

@RequestMapping(value = "/uc")
public String userContracts(@RequestParam("nr") String nr, Model model)
{
  List<Contract> ContractList = new ArrayList<Contract>();

  ContractList = cl.getContractsOfUser(nr);
  model.addAttribute("ContractList", ContractList);
    System.out.println("In uc");
    return "UserContracts";
}
<table>
<form action="http://localhost:8080/VR/uc.html">
<tr><td>
<h3 style="color:#0080ff;">Enter CNP :</h3>
<tr><td>
<input name="nr" type="text">
<tr><td align="center">
<br>
<br>
<input type="submit" value="Find">
</form>
</table>