【发布时间】:2019-06-15 04:04:10
【问题描述】:
我正在尝试构建一个简单的 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"/>
控制器:
@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?
【问题讨论】:
-
您是否创建了任何名为音乐的模型类?如果是,您是否在其中定义了
artist属性并为此生成了getter setter 方法?并验证是否有任何拼写错误。 -
是的!将艺术家声明为 getArtist()、setArtist() 和 getter 和 setter。当我有一个名称相同的常规 HTML 输入时,搜索工作完美。不过,感谢您的观看!