Пример Spring MVC ParameterizableViewController

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-1

Скачать исходный код