I'm trying to build a simple Spring project where a user can search the database via form. It works perfectly if I use a regular form input, but if I try to use JSTL form tags it breaks. Any help would be appreciated
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";
}
Service:
public List<Music> findArtist(String search){
return musicRepository.findByArtistContaining(search);
}
repo:
List<Music> findByArtistContaining(String search);
Really not sure what I'm doing wrong, but I'm sure I'm messing up the JSP code somehow. I just want to pull the results from the DB via the repo method findByArtistContaining
error I'm receiving when trying to access is:
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?
sorry late to the party, but I think this wouldn't work as the request param doesn't match the name of the String your trying to map it to, as stated here;
So changing to below should work;
@RequestParam(name="artist") String artist,