我在Spring MVC RequestMapping中遇到了問題,我希望有人可以給我如何繼續的建議。Spring MVC RequestMapping混淆
我正在處理一個將被舊客戶端訪問的服務器。客戶發送簡單的請求(見下文),但無法以任何方式更改以適應新的服務器。
客戶端發送獲取或形式/dbintf?命令= GETINFO的帖子,ACCTNUM = 111 服務器稱爲dbintf,它返回一個簡單的文本響應。
我想爲每個命令創建一個Spring控制器,並用 註釋一個基於命令參數的params映射的單個控制器方法。所以在GETINFOController中的映射將是:
@RequestMapping(params="command=GETINFO")
public String serviceRequest(....
但是,我無法得到這個工作。以下是該服務的一些詳細信息。
在web.xml中的servlet映射:
<servlet-mapping>
<servlet-name>dbintf</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
在INTF-servlet.xml文件中的註釋掃描指令
<context:component-scan base-package="com.intf.controller" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
我一直在努力的事情不同的組合,試圖讓這個計劃工作,我會燒這 反覆試驗工作下降到兩個例子:
這是行不通的。迴應是:「請求的資源()不可用。」
@RequestMapping(params="command=GETINFO")
public class TESTController {
@RequestMapping(method = RequestMethod.GET)
public String serviceRequest
如果我更改URL添加另一個級別:?/ dbintf/test命令= GETINFO,ACCTNUM = 111 它的工作原理,如果我一個URL模式添加到處理程序方法的註釋。
@RequestMapping(params="command=GETINFO")
public class TESTController {
@RequestMapping(value="/test",method = RequestMethod.GET)
public String serviceRequest
這讓我覺得,params映射本身將無法正常工作。看起來,URL 模式必須是任何映射方案的一部分。但是,對於我的情況,由於客戶端請求URL被修復爲:dbintf?....,因此沒有可用的URL地址 。 我的問題:是否可以單獨使用基於參數的映射而不是 與模式結合使用?如果是這樣,我錯過了什麼?
預先感謝任何幫助或建議, beeky