Проблема в Spring включил рендеринг страницы контроллера в jsp - PullRequest
0 голосов
/ 10 декабря 2010

Когда я делаю это.

@RequestMapping("/folder/{name}.jsp")
public ModelAndView catchAll(@PathVariable String viewName) {
    return new ModelAndView("legacy/" + viewName);
}

выдает ошибку в браузере, что

legacy / 123.jsp недоступен

Как я могу решить эту проблему

если у меня есть список идентификаторов,

я хочу, чтобы браузер показывал это / legacy / 1 / legacy / 2 и т. Д., Чтобы я мог программировать весной

Ответы [ 2 ]

2 голосов
/ 10 декабря 2010

Вам нужно поместить 123.jsp в подкаталог legacy каталога, в который вы помещаете свои JSP.

Но я думаю, это не то, что вы хотите: я предполагаю, что вы хотите создать что-то вродепересылка.В этом случае вы должны вернуть представление перенаправления.

@RequestMapping("/folder/{name}.jsp")
public ModelAndView catchAll(@PathVariable String viewName) {
    return new ModelAndView(new RedirectView("legacy/" + viewName + ".jsp"));
}
0 голосов
/ 14 декабря 2010

Вы говорите Spring для рендеринга jsp-страницы, которая не существует.Если имя вашего jsp - «legacy.jsp», это представление, которое вы визуализируете, и вы просто передаете другой объект в представление на основе параметра.Если вы хотите, чтобы legacy/123 переместил вас в «legacy.jsp», который покажет объект Legacy с идентификатором 123, то вы сделаете это так:

@RequestMapping("/legacy/{id}")
public ModelAndView catchAll(@PathVariable("id") String id) {
  Legacy legacy = // Get the object from your database using the id
  return new ModelAndView("legacy", "legacy", legacy); // insert the legacy object into your view, it will be accessed by the name "legacy"
}

Таким образом, вы вводитеurl "/ legacy / 123" в вашем браузере (или щелкните ссылку на него), и он просто отображает legacy.jsp с выбранным вами объектом, используя идентификатор 123.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...