he creado una asignación en web.xml algo como esto:Controlador de primavera no funciona como debería
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/about/*</url-pattern>
</servlet-mapping>
En mi controlador Tengo algo como esto:
import org.springframework.stereotype.Controller;
@Controller
public class MyController{
@RequestMapping(value="/about/us", method=RequestMethod.GET)
public ModelAndView myMethod1(ModelMap model){
//some code
return new ModelAndView("aboutus1.jsp",model);
}
@RequestMapping(value="/about", method=RequestMethod.GET)
public ModelAndView myMethod2(ModelMap model){
//some code
return new ModelAndView("aboutus2.jsp",model);
}
}
Y mi despachador-servlet.xml tiene vista resolutor como:
<mvc:annotation-driven/>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp"/>
Para mi sorpresa: solicitud .../about/us
no está llegando a myMethod1 en el controlador. El navegador muestra un error 404. Puse un registrador dentro del método pero no está imprimiendo nada, es decir, no se está ejecutando.
.../about
funciona bien! ¿Qué se puede hacer para que la solicitud .../about/us
funcione? ¿Alguna sugerencia?
Pero no he mapeado nada en el nivel de clase del controlador. Realmente necesito ? Creo que solo entonces necesito el escritor '/ us' en lugar de'/about/us' y echar un vistazo: '/ about' ya está funcionando! Entonces, ¿por qué no 'sobre/nosotros'. – Atharva
Motivo: Ha asignado **/about/** en web.xml a DispatcherServlet. Por lo tanto, debe asignar solo la parte siguiente **/acerca de **. –
¿**/about ** entra en su método? ¿¿De Verdad?? Debe estar entrando en DispatcherServlet –