Spring-Controller-URL-Anforderung das mapping funktioniert nicht wie erwartet
Habe ich eine Zuordnung in web.xml so etwas wie dieses:
<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 habe 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 meine dispatcher-servlet.xml hat die view-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
ist nicht zu erreichen, um myMethod1 in der Steuerung. Der browser zeigt die Fehlermeldung 404. Ich habe eine logger innerhalb der Methode ist es aber nicht drucken nichts, was bedeutet, es ist nicht ausgeführt.
.../about
funktioniert! Was kann sein getan, um .../about/us
Anforderung? Irgendwelche Vorschläge?
InformationsquelleAutor Atharva | 2012-06-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
@RequestMapping(value="/us", method=RequestMethod.GET)
oder Sie müssen auf Anfrageabout/about/us
/us
statt/about/us
und haben einen Blick:/about
ist bereits in Arbeit ! Warum dann nichtabout/us
.Der Grund : Sie haben zugeordnet /about/ in web.xml zu DispatcherServlet. So, Sie müssen die Karte nur zum Teil nach /info.
Do /info kommen in Ihre Methode??? Wirklich?? Es kommt in DispatcherServlet
Es führt zu der Methode über das dispatcher-servlet. Übrigens hab ich den code-arbeiten durch das hinzufügen einige weitere config-Zeilen in der dispatcher-servlet.xml. Werfen Sie einen Blick auf meine Antwort. Vielen Dank für Ihre Hilfe. 🙂
Herzlichen Glückwunsch.!!! Aber, ich habe verschiedene anzeigen auf diese. Ich sehe keinen Grund, warum ich brauchen, um mit alwaysUseFullPath, solange ich kann die Karte erst später Teil der Anfrage-URLs für den Frühling. Zumindest ich brauche das nicht zu wiederholen /info überall.
InformationsquelleAutor Ravi Khakhkhar
Da Sie zugeordnet haben "/about" in Ihrer web.xml die url wird übergeben werden, wie dies http://www.xyz.com/about/*
Als deine Konfiguration sagt, es wird für die Arbeit
Um richtig zu arbeiten entweder
/*
im web.xml statt/about
oder ändern Sie die controller-Endpunkt
@RequestMapping(value="/us", method=RequestMethod.GET)
@RequestMapping(value="/", method=RequestMethod.GET)
InformationsquelleAutor ravi ranjan
Okay, ich hab das Ding funktioniert, hier sind Dinge, die ich Hinzugefügt dispatcher-servlet.xml:
InformationsquelleAutor Atharva