Spring MVC, adelante

Hay alguna diferencia entre

public class Controller1 extends AbstractController {
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        return new AnotherController().handleRequest(request, response);
    }
}

y

@Controller
public class Controller1 {

    @RequestMapping ...
    public String handleRequest() {
        return "forward:/path_to_my_another_controller";
    }
}
InformationsquelleAutor user12384512 | 2010-06-08

2 Kommentare

  1. 16

    Son similares, pero no exactamente la misma.

    El segundo enfoque se creará una nueva solicitud interna para ser remitido a la segunda controladora, mientras que el primero se re-utilizar el mismo objeto de solicitud.

    Ya sea o no que importa, depende de lo que cada uno de los controladores no a la solicitud.

    He encontrado que el encadenamiento de los controladores de juntas usando el método directo de llamadas es uno de los más atractivos de los aspectos de la Primavera anotado los controladores, se puede hacer de una forma mucho más natural de flujo de sujeción reenvía las solicitudes alrededor.

    Como siempre, su kilometraje puede variar.

  2. 22

    Mediante la creación de controladores de sí mismo, va a evitar que la Primavera de la inyección de dependencias en ellos. Esto puede causar que su auto-creado controladores no funcionan correctamente.

    Si realmente necesidad de la cadena de controladores de esta, me gustaría pedir a la Primavera en el contexto de aplicación de una instancia del controlador que desea en lugar de crear uno con el new operador.

    • Mejor aún, usted puede @Autowired el otro controlador.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea