Как ParameterizableViewController будет устанавливать viewName в случае ограничений, основанных на принятии решения - PullRequest
0 голосов
/ 19 апреля 2020

Я смотрю на ParameterizableViewController, он берет viewName из нашего весеннего xml файла, но что происходит, когда нам нужно решить, какой JSP возвратить viewResolvers.

пример:

При работе с AbstractController мы делаем что-то подобное

public class LoginController extends AbstractController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        if(request.getParameter("user").equals(request.getParameter("password"))) {
            return new ModelAndView("success");
        }
        else {
            return new ModelAndView("failure");
        }
    }

}

Но при работе с ParameterizableViewController мы делаем

public class LoginController extends ParameterizableViewController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        if(request.getParameter("user").equals(request.getParameter("password"))) {
            return new ModelAndView(getView());
        }
        else {
            return new ModelAndView(getView());
        }
    }

}

и подпружинены. xml будет похоже на

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <util:properties location="classpath:url.properties"/>
        </property>
    </bean>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <bean class="com.awcsoftware.controller.LoginController">
        <property name="viewName" value="success"></property>
    </bean>

</beans>

Здесь я теряю динамическое перенаправление страниц c.

...