ho creato una mappatura in web.xml qualcosa di simile:primavera controller non funziona come previsto
<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>
Nel mio controller ho qualcosa di simile:
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);
}
}
E il mio dispatcher-servlet.xml ha vista resolver come:
<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"/>
Con mia grande sorpresa: richiesta .../about/us
non sta raggiungendo myMethod1 nel controller. Il browser mostra l'errore 404. Inserisco un logger nel metodo ma non stampa nulla, cioè non viene eseguito.
.../about
funziona bene! Cosa può essere fatto per rendere operativa la richiesta .../about/us
? Eventuali suggerimenti?
Ma non ho mappato nulla sul livello di classe del controller. Ho bisogno di? Penso che solo allora ho bisogno di scrivere '/ us' invece di'/about/us' e dare un'occhiata: '/ about' sta già lavorando! Allora perché non "su/noi". – Atharva
Il motivo: Hai mappato **/about/** in web.xml su DispatcherServlet. Pertanto, è necessario mappare solo la parte che segue **/circa **. –
Fai **/about ** entrando nel tuo metodo ?? Veramente?? Deve essere in DispatcherServlet –