带有选择(下拉)的表格不显示错误代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有选择(下拉)的表格不显示错误代码相关的知识,希望对你有一定的参考价值。
我有一个包含用于按ID列出系统中所有教师的选择的表格,但是它不能正常工作。
这里是表单的代码部分
和相应的路径控制器请求
我正在使用Thymeleaf和Spring Boot,所以'pr'对应于教师资源库的变量的名称。
<form th:action="@/professor/updateProfessor/" method="post" th:object="$professor">
<div class= "form-group">
<label th:for = "id">Id</label>
<select th:field="*id">
<option
th:value = "$id"
th:text = "$professor.id">
</option>
</select>
</div>
<input type = "submit" value = "Add Professor">Save</button>
</form>
@GetMapping(value = "/selecionaProfessor")
@ResponseBody
public ModelAndView professorSelecao()
ModelAndView atualizaProfessor = new ModelAndView("/atualizaProfessor");
atualizaProfessor.addObject("Add Professor");
return atualizaProfessor;
@PostMapping(value = "/selecionaProfessor")
@ResponseBody
public ModelAndView selecaoProfessor()
ModelAndView pagSucesso = new ModelAndView("/pagSucesso");
pagSucesso.addObject(pr.findAll());
return pagSucesso;
答案
从您的控制者,按照以下说明发送教授列表到您的视图。在这里,您将教授列表与“ professorList”相关联:
model.addAttribute("professorList", pr.findAll());
然后访问百里香中“ professorList”上方的内容(类似于):
<option th:each="professor: $professorList" th:value="$professor"> </option>
不是完整的代码,但我希望您有个入门的想法。
另一答案
首先什么不起作用?因为我看到了很多可能无法正常工作的东西,也许是因为我没有看到全部代码,或者我猜到了一些东西,让我们来看看
当您使用输入到控制器时
localhost:8080/professor/selecionaProfessor
您是否希望使用您填写正确的表格? (下一个代码)
<form th:action="@/professor/updateProfessor/" method="post" th:object="$professor">
<div class= "form-group">
<label th:for = "id">Id</label>
<select th:field="*id">
<option
th:value = "$id"
th:text = "$professor.id">
</option>
</select>
</div>
<input type = "submit" value = "Add Professor">Save</button>
</form>
因为这是正确的,您的方法有问题:
@GetMapping(value = "/selecionaProfessor")
@ResponseBody
public ModelAndView professorSelecao()
ModelAndView atualizaProfessor = new ModelAndView("/atualizaProfessor");
atualizaProfessor.addObject("Add Professor");
return atualizaProfessor;
您将收到一条错误消息:
Neither BindingResult nor plain target object for bean name 'professor' available as request attribute
所以您缺少添加关键教授和列表的位置,所以请更改:
atualizaProfessor.addObject("Add Professor");
带有类似内容:
atualizaProfessor.addObject("professor", someListOfProfessorHereFromTheService (List<Professor>));
并且如果您的profesor对象具有您在表单上拥有的属性,它应该可以工作。
现在让我们假设它以前曾经起作用,而错误不是那样。
当您输入表单时,如果您在此处看到:
form th:action="@/professor/updateProfessor/"
您正在使用updateProfessor,但在您的控制器上看不到
@PostMapping(value = "/selecionaProfessor")
因此,我认为您应该更改html页面或控制器内的url映射,并使用与错误1相同的映射,如我在第一个错误中所示,使用键和值映射对象,并将列表迭代到html中] >
希望有帮助
以上是关于带有选择(下拉)的表格不显示错误代码的主要内容,如果未能解决你的问题,请参考以下文章