Код: Выделить всё
@Entity
@Table(name = "trainstation2")
public class TrainStation2 {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String ds100;
private String name;
@ManyToMany(mappedBy = "stations")
private Set lines = new HashSet();
//constructor and getters & setters omited
public void addLine(TrainLine line) {
this.lines.add(line);
line.getStations().add(this);
}
public void removeLine(TrainLine line) {
this.lines.remove(line);
line.getStations().remove(this);
}
< /code>
Prings Controller: < /p>
@GetMapping("/add-trainstation2")
public String addTrainStation2(@RequestParam(required = false) Long id, Model model) {
model.addAttribute("trainstation", new TrainStation2());
model.addAttribute("lineId", 0);
model.addAttribute("lines", lineRepo.findAll());
return "add-trainstation2";
}
@PostMapping("/add-trainstation2")
public String submitTrainStation2(@ModelAttribute TrainStation2 ts, Model model) {
model.addAttribute("stations", stationRepo.findAll());
model.addAttribute("lines", lineRepo.findAll());
Long lineId = (Long) model.getAttribute("lineId");
log.warn(String.format("lineId: %d", lineId));
ts.addLine(lineRepo.getById(lineId));
stationRepo.save(ts);
model.addAttribute("trainstation", ts);
return "add-trainstation2";
}
< /code>
шаблон Add-trainstation2.html < /p>
ds100:
name:
Submit
Reset
function updateId (objDropDown) {
var objHidden = document.getElementById("lineId");
console.log(objHidden.value);
console.log(objDropDown.value);
objHidden.value = objDropDown.value;
}
< /code>
Не используя Th: выбрано и не использует скрытый ввод, а значение Th: значение работало. Также установка выбранной раскрывающейся записи через JavaScript не сработала. Как установить атрибут Spring Model в Thymeleaf, чтобы прочитать его через model.getattribute () в контроллере пружины? < /P>
для полноты: < /p>
@Entity
@Table(name = "trainline")
public class TrainLine {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description; //to distinguish lines with the same name
@ManyToMany
@JoinTable(name = "line_station", joinColumns = @JoinColumn(name = "line_id"), inverseJoinColumns = @JoinColumn(name = "station_id"))
private Set stations = new HashSet();
// constructor and getters & setters omited
}
< /code>
схема DB < /p>
CREATE TABLE trainline(id BIGSERIAL PRIMARY KEY, name TEXT, description TEXT);
CREATE TABLE trainstation2(id BIGSERIAL PRIMARY KEY, ds100 TEXT, name TEXT);
CREATE TABLE line_station(line_id BIGINT NOT NULL REFERENCES trainline(id), station_id BIGINT NOT NULL REFERENCES trainstation2(id));
Подробнее здесь: https://stackoverflow.com/questions/797 ... controller