0
我正在使用Spring MVC,可以得到一些簡單的網址映射到正確的控制器,但不是與寧靜的動態網址。在我的例子中,我有一個uri/agent。這將擴展到/ agent/{name}。我已經在正是如此我的控制器映射這樣的:春天MVC休息網址不工作
public class AgentController implements Controller {
protected final Log logger = LogFactory.getLog(getClass());
@RequestMapping(method=RequestMethod.GET, value="/agent/{name}")
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response, @PathVariable String name)
throws ServletException, IOException {
logger.info("Returning Agent view");
return new ModelAndView("agent.jsp", "name", name);
}
@Override
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
return null;
}
}
我的web.xml看起來像:
<servlet>
<servlet-name>Monitor</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Monitor</servlet-name>
<url-pattern>/agents</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Monitor</servlet-name>
<url-pattern>/agent/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
和監控-servlet.xml中的樣子:
<bean name="/agents" class="com.activoz.monitor.web.IndexController"/>
<bean name="/agent/*" class="com.activoz.monitor.web.AgentController"/>
的/代理商網址工作正常,可以顯示一些數據使用休眠,但與/代理獨自我得到一個空白,在我的腦海似乎預計,因爲重寫null返回handleRequest在底部。然而,我想知道爲什麼/ agent/Ping或/ agent/Http沒有被映射到頂部handleRequest方法?當我試圖拉起/ Monitor/agent/Ping時出現此錯誤:
WARNING: No mapping found for HTTP request with URI [/Monitor/agent/Ping] in DispatcherServlet with name 'Monitor'
感謝您的任何幫助。
感謝Felipe的幫助。我在web.xml中改變了這一點,我仍然在瀏覽器中看到「請求的資源不可用」錯誤(儘管日誌中沒有任何內容對我來說很奇怪)。我的@RequestMapping是否需要更改? – Harlin 2014-10-07 21:59:49
我在公共類AgentController的頂部放置了@RequestMapping(「/ agent」),並且覆蓋了handleRequest返回一個jsp頁面。如果我按照建議從web.xml中取出條目,它不起作用,但如果我將它放入,它可以正常工作。唯一仍然不起作用的是主要問題「/ agent/{name}」。有關可能的任何想法? – Harlin 2014-10-07 22:30:38