Как использовать модель.JAVA

Программисты JAVA общаются здесь
Anonymous
Как использовать модель.

Сообщение Anonymous »

У меня есть отношения между многими ко многим (железнодорожная линия и железнодорожная станция), и я хочу - при добавлении нового объекта (железнодорожная станция) - передайте выброшенный на витоудаленную карту идентификатор (поезда) в пружинный контроллер (чтобы добавить линию на линии этой железнодорожной станции). Однако ни одна из попыток, которые я пытался, не работала.

Код: Выделить всё

@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));
Я, возможно, мог бы использовать DTO (объект передачи данных), но я бы полагался на эту опцию только в качестве последней курорта.

Подробнее здесь: https://stackoverflow.com/questions/797 ... controller

Вернуться в «JAVA»