我在 web.xml 中创建了一个映射,如下所示:
<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>
在我的 Controller 中我有这样的东西:
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);
}
}
我的dispatcher-servlet.xml具有如下 View 解析器:
<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"/>
令我惊讶的是:请求 .../about/us
未到达 Controller 中的 myMethod1。浏览器显示404错误。我在方法中放置了一个记录器,但它没有打印任何内容,这意味着它没有被执行。
.../about
工作正常!可以采取什么措施来使 .../about/us
请求起作用?有什么建议吗?
最佳答案
您需要使用@RequestMapping(value="/us", method=RequestMethod.GET)
或者您需要请求about/about/us
关于model-view-controller - Spring Controller 的 URL 请求映射未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11203907/