Le printemps du Contrôleur de la demande de l'URL de la cartographie ne fonctionne pas comme prévu
J'ai créé une cartographie web.xml quelque chose comme ceci:
<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>
Dans mon contrôleur, j'ai quelque chose comme ceci:
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);
}
}
Et mon dispatcher-servlet.xml a la vue de résolution comme:
<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"/>
À ma grande surprise: demande .../about/us
n'est pas atteint à myMethod1 dans le contrôleur. Le navigateur affiche l'erreur 404. J'ai mis un système à l'intérieur de la méthode, mais ce n'est pas l'impression de rien, sens, il n'est pas en cours d'exécution.
.../about
fonctionne très bien! Quel peut être le fait de faire .../about/us
demande de travail? Des suggestions?
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
@RequestMapping(value="/us", method=RequestMethod.GET)
ou vous avez besoin de demanderabout/about/us
/us
au lieu de/about/us
et avoir un coup d'oeil:/about
est déjà au travail ! Alors pourquoi ne pasabout/us
.about
partout dans les méthodes. Juste en annotant une fois de plus la classe est assez. Et à l'intérieur des méthodes, nous pouvons simplement utiliser une url relative des formes comme/us
.Depuis que vous avez mappé "/about" dans votre web.xml l'url de la page il va passer sera comme ceci http://www.xyz.com/about/*
À votre configuration dit qu'il va travailler pour
Afin de fonctionner correctement utiliser
/*
dans web.xml au lieu de/about
ou de modifier le contrôleur de point de terminaison pour
@RequestMapping(value="/us", method=RequestMethod.GET)
@RequestMapping(value="/", method=RequestMethod.GET)
Bon j'ai eu la chose de travail, ici sont des choses que j'ai ajouté dans la dispatcher-servlet.xml: