【发布时间】:2018-11-17 03:11:46
【问题描述】:
我试图在更改选项后将我的 Thymeleaf HTML 中已提供的列表传递回控制器。我用隐藏的输入试过了,但不幸的是,它还没有工作。
我的表单看起来像这样(控制器已经提供了一个列表“电影”)
<form action="/movies" method="POST">
<input type="hidden" th:field="*{movies}" name="movies"/>
<select name="myselect" id="myselect" onchange="this.form.submit()">
<option value="1">Sort by Name (A-Z)</option>
<option value="2">Sort by Name (Z-A)</option>
<option value="3">Newest First</option>
<option value="4">Oldest First</option>
</select>
</form>
我的控制器看起来像这样:
package at.spengergasse.omdbspring.controller;
import at.spengergasse.omdbspring.domain.Movie;
import at.spengergasse.omdbspring.service.MovieService;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@RequiredArgsConstructor
@Controller
public class MoviesController {
private final MovieService movieService;
@GetMapping("/")
public String greeting(Model model) {
model.addAttribute("movies", movieService.findAll());
return "movies";
}
@PostMapping("/movies")
public String getMoviesOrdered(@RequestAttribute List<Movie> movies, @RequestParam String myselect, Model model){
model.addAttribute(movieService.findCustomListSorted(movies,myselect));
return "movies";
}
}
期待你能帮助我的人!
【问题讨论】:
标签: java spring spring-boot parameter-passing thymeleaf