Ich habe eine Zuordnung in web.xml etwas wie folgt erstellt:Frühlings-Controller der URL-Anfrage Mapping funktioniert nicht wie erwartet
<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>
In meinem Controller ich so etwas wie dieses:
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);
}
}
Und mein Dispatcher-servlet.xml hat Ansicht Resolver wie:
<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"/>
zu meiner Überraschung: Anfrage .../about/us
erreicht im Controller nicht myMethod1. Der Browser zeigt 404 Fehler an. Ich habe einen Logger in die Methode eingefügt, aber es wird nichts gedruckt, dh es wird nicht ausgeführt.
.../about
funktioniert gut! Was kann getan werden, um .../about/us
Anfrage Arbeit zu machen? Irgendwelche Vorschläge?
Aber ich habe keine Sache auf der Ebene der Controller-Klasse zugeordnet. Muss ich ? Ich denke nur dann muss ich '/ us' schreiben statt'/about/us' und guck mal: '/ about' funktioniert schon! Dann warum nicht über uns. – Atharva
Der Grund: Sie haben **/about/** in web.xml dem DispatcherServlet zugeordnet. Sie müssen also nur einen Teil nach **/über ** abbilden. –
Do **/about ** kommt in Ihre Methode? Ja wirklich?? Es muss in DispatcherServlet –