У меня есть две конечные точки стиля mvc, возвращающие имена файлов шаблонов в качестве имен представлений в одном и том же пути к классам: / source и / target. Source_template имеет переменную, которая должна быть заполнена содержимым другого шаблона, например target_template.
@RestController
class SomeController {
@GetMapping("/source")
public String source(Model model) {
model.addAttribute("attr1", /*call endpoint /target and add the response of parsed template 'target_template' here */);
return "source_template";
}
@GetMapping("/target")
public String target(Model model) {
model.addAttribute("attr2", "good");
//may be continue the nested invocation n number of times
return "target_template";
}
}
с учетом source_template. html: Hai, $ attr1 и target_template. html: это имеет был день $ attr2
сказав, что я вызываю URL / источник, я должен получить «Привет, это был хороший день».
Я могу просто вызвать метод target () напрямую, но это не приведет к отображению шаблона. Или я должен напрямую использовать apis механизма шаблонов, чтобы связать файл шаблона, поместить объект контекста, проанализировать шаблон и вернуть строку, что противоречит всей цели spring mvc. Или я могу использовать resttemplate, но для этого требуется абсолютный URL-адрес, и производительность снизится. Итак, есть ли другой способ сделать это?