@Controller
public class NaviPageController {
@RequestMapping("navi")
public String navi(ModelMap modelMap,String fid,String cid){
return "list";
}
}
有兩種url傳遞方式,navi?fid=1navi?fid=1&cid=2
怎么判斷是哪種url請求過來的啊?
3 回答

拉風(fēng)的咖菲貓
TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個贊
@Controller
public class NaviPageController {
@RequestMapping("navi")
public String navi(ModelMap modelMap,@RequestParam String fid,@RequestParam(required=false)String cid){
if(cid == null){
//handling code
}else{
//other handling code
}
return "list";
}
}
在SpringMVC后臺控制層獲取參數(shù)的方式主要有兩種,一種是request.getParameter("name"),另外一種是用注解@RequestParam直接獲取
該注解有兩個屬性: value、required; value用來指定要傳入值的id名稱,required用來指示參數(shù)是否必須綁定;
所以按你描述,cid并不是必填的,所以配置required=false

智慧大石
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個贊
你可以通過這樣的方式獲取url后面的參數(shù)
@Controller
public class NaviPageController {
@RequestMapping("navi")
public String navi(HttpServletRequest request){
Map<String, String[]> paramtersMap = request.getParameterMap();//url后面的參數(shù)都在map里
paramtersMap.get("fid");
paramtersMap.get("cid");
return "list";
}
}

猛跑小豬
TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個贊
@RequsetMapping有一個params屬性,作用是使請求更精確
比如@RequestMapping(value="/navi",params={"cid"}) :只有當(dāng)請求參數(shù)中有cid的時候才進(jìn)到目標(biāo)方法。
如果你對SpringMVC的知識不是很理解,可以看一下這個:SpringMVC知識詳解
添加回答
舉報
0/150
提交
取消