2016-05-08 12 views
1

Ich habe Servlet XML-Datei personDetails-servlet.xmlWarum der Servlet-Name an die anfordernde Karten-URL angehängt? Ist es möglich, URL ohne Servlet-Namenspräfix zu haben?

<bean> 
<mvc:annotation-driven /> 
<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/jsp/yyy/config/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 
<context:component-scan base-package="com.ddd.config.controller" /> 
</beans> 

Und Web.xml Eintrag

<servlet> 
     <servlet-name>personDetails</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>personDetails</servlet-name> 
    <url-pattern>/personDetails/*</url-pattern> 
</servlet-mapping> 

und unten ist PersonDetailsController

package com.ddd.config.controller; 
@Controller 
public class PersonDetailsController { 
@RequestMapping(value="/personDetails/personAddressDetails.html",   method=RequestMethod.GET) 
public String abc(ModelMap model) throws Exception{ 
} 
} 

Und ich versuche, mit http://localhost:8080/myapp/personDetails/ConfgurationDetails.html zu treffen es funktioniert nicht wenn ich mit unter einem versuchte es funktioniert http://localhost:8080/myapp/personDetails/personDetails/ConfgurationDetails.html

kann jemand sagt, wie ich ohne das Hinzufügen Servletnamen tun können Mapping ULR zu beantragen, und mir auch sagen, wie Name hinzugefügt wird. danke

Antwort

1

Nach Ihrer web.xml Config-Datei, sagen Sie Ihre Anwendung die org.springframework.web.servlet.DispatcherServlet Klasse verwenden um Anfragen zu bearbeiten, die <application_context>/personDetails/* entsprechen.

Die vorherige URL ist der Ausgangspunkt aller URLs, die Sie mit Spring MVC verwenden. Wenn Sie also den folgenden Handler @RequestMapping(value="/personAddressDetails.html") deklarieren, lautet die URL, die Sie anrufen müssen, <application_context>/personDetails/personAddressDetails.html.

Mit anderen Worten, Sie müssen das Servlet Mapping-Präfix nicht zur RequestMapping Annotation Ihres Controllers hinzufügen.

+0

hallo alexandre danke für die antwort. aber ich habe es versucht. Ich weiß, es wird funktionieren. aber hier wird auch das Servlet-Präfix hinzugefügt. Aber ich brauche eine Lösung nur für ApplicationContext/ReqestMapping. Ich habe dieses Problem mehrere Stellen. Ich kann URLs mit Servlet-Namenspräfix nicht beibehalten. nur requestmapping ich brauche. ist es möglich oder nicht ..? – Yugandhar

+0

Ich bin mir nicht sicher, ob ich verstehe, was du meinst. Wenn Sie den '/ personDetails'-Teil abreiten wollen, verwenden Sie'/* 'als Servlet-Mapping des Dispatcher. –

+0

was du gesagt hast, tha's rigth muss/* dafür verwenden. ich habe die restlichen Plätze geändert danke – Yugandhar

Verwandte Themen