我已經創建了在web.xml東西一個這樣的映射:春季控制器的URL請求映射工作不正常
<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>
在我的控制器我有這樣的事情:
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);
}
}
和我調度員servlet.xml中具有視圖解析器,如:
<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
沒有到達控制器中的myMethod1。瀏覽器顯示404錯誤。我在方法內部放置了一個記錄器,但它不打印任何東西,也就是說,它沒有被執行。
.../about
工作正常!可以做什麼使.../about/us
請求工作?有什麼建議麼?
但我沒有在控制器類級別上映射任何事物。我需要嗎?我認爲只有這樣我才需要編寫'/ us'而不是'/ about/us',並看看:'/ about'已經在工作了!那麼爲什麼不「關於/我們」。 – Atharva
原因: 您已將web.xml中的**/about/**映射到DispatcherServlet。所以,你只需要映射下面的**/about **部分。 –
做** /關於**進入你的方法??真??它必須進入DispatcherServlet –