@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 回答

拉风的咖菲猫
TA贡献1995条经验 获得超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后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取
该注解有两个属性: value、required; value用来指定要传入值的id名称,required用来指示参数是否必须绑定;
所以按你描述,cid并不是必填的,所以配置required=false

智慧大石
TA贡献1946条经验 获得超3个赞
你可以通过这样的方式获取url后面的参数
@Controller
public class NaviPageController {
@RequestMapping("navi")
public String navi(HttpServletRequest request){
Map<String, String[]> paramtersMap = request.getParameterMap();//url后面的参数都在map里
paramtersMap.get("fid");
paramtersMap.get("cid");
return "list";
}
}

猛跑小猪
TA贡献1858条经验 获得超8个赞
@RequsetMapping有一个params属性,作用是使请求更精确
比如@RequestMapping(value="/navi",params={"cid"}) :只有当请求参数中有cid的时候才进到目标方法。
如果你对SpringMVC的知识不是很理解,可以看一下这个:SpringMVC知识详解
添加回答
举报
0/150
提交
取消