Spring MVC ParameterizableViewController пример
В общем, чтобы вернуть представление или страницу в приложении Spring MVC, вам необходимо создать класс, который расширяетAbstractController и возвращает объектModelAndView().
public class WelcomeController extends AbstractController{ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView model = new ModelAndView("WelcomePage"); return model; } }
В файле конфигурации bean-компонента объявленControllerClassNameHandlerMapping для автоматического определения сопоставления.
Но вы не думаете, что это слишком много конфигурации для простой задачи перенаправления? К счастью, Spring поставляется сParameterizableViewController, чтобы упростить описанные выше процессы. СParameterizableViewController вам больше не нужно жестко кодировать имя представления в классе контроллера, вместо этого вы помещаете декларативное имя представления через свойство ParameterizableViewController «viewName».
Note
ParameterizableViewController является подклассом AbstractController и возвращает ModelAndView на основе свойства «viewName»,it’s purely a redirect class, ни больше, ни меньше :)
ParameterizableViewController.java
public class ParameterizableViewController extends AbstractController{ //... protected ModelAndView handleRequestInternal( HttpServletRequest request, HttpServletResponse response) throws Exception { return new ModelAndView(getViewName()); }
Руководство
В этом руководстве показано использование контроллераParameterizableViewController для перенаправления страницы в приложении Spring MVC.
1. ParameterizableViewController
Класс контроллера не требуется, просто объявите bean-компонентParameterizableViewController и укажите имя представления через свойство «viewName». Кроме того, вы должны определить явное сопоставление для него.
welcomeController /WEB-INF/pages/ .jsp
Требуется определение явного сопоставления.
//... //...
В приведенном выше фрагменте, ожидаете ли вы, что имя представления «welcome» будет возвращать «WelcomePage»? К сожалению, это не так, вы должны определитьexplicit mapping, потому чтоControllerClassNameHandlerMapping не будет генерировать сопоставление для любого встроенного контроллера Spring MVC.
2. View
Просто простая JSP для отображения заголовка.
WelcomePage.jsp.jsp
ParameterizableViewController Example
3. Demo
Доступ к нему через «http://localhost:8080/SpringMVC/welcome.htm», «welcome.htm» вернет обратно «/WEB-INF/pages/WelcomPage.jsp».
Скачать исходный код
Скачать -SpringMVC-ParameterizableViewController-Example.zip (7KB)