![](/img/trans.png)
[英]Unable to use @RequestMapping when I add 'extends MultiActionController' to controllers class name
[英]How to separate Logics by method name in Springframework without extends MultiActionController?
如標題所述,我想在單個控制器中執行多個功能,而無需繼承MultiActionController。
所以我做了下面的代碼。
package org.owls.replace;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping(value={"/test"})
public class TestController {
private Logger log = Logger.getLogger(TestController.class);
@RequestMapping(params={"m=doA"})
public void doA() throws Exception{
log.info("DoA !");
}
@RequestMapping(params={"m=doB"})
public void doB() throws Exception{
log.info("DoB !");
}
@RequestMapping(params={"m=doC"})
public void doC() throws Exception{
log.info("DoC !");
}
};
此代碼有效。 如果我叫“〜/ m = doA”,它會顯示“ DoA”。 但是,我想要的是除去類上的每個@RequestMapping。(因為參數“ m”是固定的,並且僅方法名可以是參數)
所以我期望的是類似下面的代碼(不起作用。但是要注意@RequestMappping中的params值)。
package org.owls.replace;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping(value={"/test"}, params={"doA", "doB", "doC"})
public class TestController {
private Logger log = Logger.getLogger(TestController.class);
public void doA() throws Exception{
log.info("DoA !");
}
public void doB() throws Exception{
log.info("DoB !");
}
public void doC() throws Exception{
log.info("DoC !");
}
};
**如何在不使用MultiActionController或xml設置的情況下使用參數映射方法名稱?
我的英語很丑陋,但我希望您通過閱讀代碼可以理解我的意思。 感謝您編輯拙劣的英語,並分享我的問題。 :D
Spring MVC具有足夠的可定制性,您可能可以通過實現和注冊自定義HandlerMapping
和HandlerAdapter
,但這是不值得的。
使用您的第一種直覺,並使用@RequestMapping(params={"m=doXXX"})
批注的方法。 這也將充當有關如何映射方法的文檔,而不是進行假設。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.