Получить атрибут из URL с помощью Thymeleaf - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь получить атрибут из URL с помощью Thymeleaf. Например, для URL: http://somedomain/university/auditories/findAll http://somedomain/university/subjects/findAll Как получить ключевое слово из URL (аудитории или предметы)?

1 Ответ

0 голосов
/ 04 апреля 2020

Я нашел ответ,

дает то, что я хотел - преобразуется в http://localhost: 8080 / subject / delete Теперь я могу удалить много дублирующихся html

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

<div th:fragment="addModal" class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-hidden="true">
  <form th:action="@{/students/add}"  //this line is choosing which controller to call (my old version)
 <form th:action="@{__${#httpServletRequest.requestURI}__/add}" //new version   (now I can use same modal for different pages)
 method="post">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title">New</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    <label for="name" class="col-form-label">Enter name:</label>
                    <input type="text" class="form-control" id="name" name="name">
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                    <button type="submit" class="btn btn-primary">Save</button>
                </div>
            </div>
        </div>
    </form>
</div>

А это класс контроллеров (контроллеры для других объектов очень похожи):

@Controller
@RequestMapping(value = "/subjects")
public class SubjectController {

   @Autowired
    SubjectService subjectService;

    @GetMapping("/")
    public String getAll(Model model) {
        model.addAttribute("subjects", subjectService.getAll());
        return "subjects";
}

    @PostMapping("/add")
    public String add(Subject subject) {
        subjectService.add(subject);
        return "redirect:/subjects/";
    }

    @PostMapping("/delete")
    public String delete(Subject subject) {
        subjectService.delete(subject);
        return "redirect:/subjects/";
    }
}


...