我在jsp文件中有此表单,我从列表中动态填充了一个下拉列表。工作正常。这是位于核心地址“ /”的本地jsp,它将数据发送到“ / spravochnik / list”。
<form action="/spravochnik/list" method="post">
<select name="tableName">
<c:forEach var="dropDown" items="${dropDown}">
<c:forEach var="valuesInRows" items="${dropDown.valuesInRows}">
<c:forEach var="valuesInRow" items="${valuesInRows}" varStatus="loop">
<c:if test="${loop.index %2 != 0}">
<option><c:out value="${valuesInRow}"></c:out></option>
</c:if>
</c:forEach>
</c:forEach>
</c:forEach>
</select>
<input type="submit" value="submit" />
</form>
现在我有一个控制器
@RequestMapping(value = "/spravochnik/list", method = { RequestMethod.POST, RequestMethod.GET })
public String getSpravochniks(Model m, @RequestParam("tableName") String tableName) {
Integer idPrepend = spravochnikService.getIdAtSpravName(tableName);
List<Spravochnik> spravList = spravochnikService.findAll(tableName);
m.addAttribute("spravList", spravList);
m.addAttribute("tableName", tableName);
m.addAttribute("idPrepend", idPrepend);
return "home";
}
它也可以正常工作,结果表(我从findAll得到的表)显示为地址/ spravochnik / list。 问题:如何显示地址,具体取决于我从home.jsp发送的变量“ tableName”?例如,如果在下拉菜单中选择“员工”并以“ tableName”名称形式传递它,则我希望结果显示在/ spravochnik / list / employees下,如果我选择“车辆”,则应为“ / spravochnik / list / vehicles”?
我尝试过的事情 -添加变量到动作 并在控制器@RequestMapping(value =“ / list / {tableName}”和tableName作为@PathVariable中。实际结果:找不到。 -与@RequestParam相同,而不是Path Variable。实际结果:未找到。