我正在尝试构建一个简单的 Spring 项目,用户可以在其中通过表单搜索数据库。如果我使用常规表单输入,它会完美运行,但如果我尝试使用 JSTL 表单标签,它就会崩溃。任何帮助将不胜感激
JSP:
<form:form action="/search" method="post" modelAttribute="music">
<form:label path="artist">Artist</form:label>
<form:errors path="artist"/>
<form:input path="artist"/>
<input type="submit" value="Submit"/>
Controller :
@RequestMapping(value="/search", method=RequestMethod.POST)
public String search(@RequestParam(value="artist") String search, Model model) {
List<Music> results = musicService.findArtist(search);
model.addAttribute("search", search);
model.addAttribute("results", results);
return "music/search.jsp";
}
服务:
public List<Music> findArtist(String search){
return musicRepository.findByArtistContaining(search);
}
仓库:
List<Music> findByArtistContaining(String search);
真的不确定我做错了什么,但我确信我以某种方式弄乱了 JSP 代码。我只想通过 repo 方法 findByArtistContaining 从数据库中提取结果
我在尝试访问时收到的错误是:
Invalid property 'artist' of bean class [java.util.ArrayList]: Bean property 'artist' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
最佳答案
抱歉晚了,但我认为这不起作用,因为请求参数与您尝试将其映射到的字符串名称不匹配,如此处所述;
因此更改为以下内容应该可行;
@RequestParam(name="artist") String artist,
关于java - 尝试通过 JSTL 表单标签提交表单时收到 bean 类的错误 "Invalid property ' xxx',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56607225/