Witam, w ramach nauki tworze prostą aplikacje webową z użyciem SpringMVC. Mam dwie klasy Album oraz Artist które są encjami. Album posiada pole klasy Artist, w którym przechowuje informacje o artyście.
Mam problem z obsługą formularza, a mianowicie nie mogę przesłać obiektu Artist w formularzu. Jak rozwiązać ten problem?
Mój kod:
@Entity
@Table(name="albums")
public class Album {
@Id
@GeneratedValue
@Column(name="album_id")
private int id;
private String title;
@ManyToOne
@JoinColumn(name="artist_id")
private Artist artist;
@Entity
@Table(name="artist")
public class Artist {
@Id
@GeneratedValue
@Column(name="artist_id")
private int id;
private String name;
@OneToMany(mappedBy="artist")
private List<Album> albums;
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String showAddAlbumPage(@ModelAttribute("newAlbum") Album newAlbum,Model model){
model.addAttribute("artists",artistService.listArtists());
return "addAlbum";
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String procedAddAlbum(@ModelAttribute("newAlbum") Album newAlbum, HttpServletRequest request){
albumService.addAlbum(newAlbum);
<form:form modelAttribute="newAlbum">
<fieldset>
<legend>Dodaj album</legend>
<div>
<label>Tytuł</label>
<form:input path="title" type="text" />
<label>Wykonawca</label>
<form:select path="artist" >
<form:options items="${artists}" itemLabel="name"/>
</form:select>
<input type="submit" value="Dodaj"/>
</div>
</fieldset>
</form:form>