You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向SpringBoot控制器传递参数及解决空指针异常问题

问题根因

你出现空指针异常的核心原因是混淆了Spring MVC中Model对象的作用:
Model是后端向返回的视图页面传递渲染数据的容器,不会存储前端请求携带的URL查询参数,你调用model.getAttribute("oper")会直接返回null,后续调用toString()方法就触发了空指针。

正确实现方案

前端的传参逻辑无需修改,仅调整控制器的参数接收规则即可,推荐使用@RequestParam注解直接绑定URL查询参数:

@RequestMapping(value = { "/programs" }, method = RequestMethod.GET)
// 直接用@RequestParam注解绑定对应名称的查询参数,Spring会自动完成类型转换
public String ProgramsController(@RequestParam int oper, @RequestParam int page, Model model) throws ClassNotFoundException {
    programs cl=new programs();
    switch (oper){
        case 0://跳转至程序选择页
            int all_pages=0;
            // 计算总页数
            all_pages = cl.getSizePages();
            struct_programs mas_result1=null;
            //if(all_pages>0)mas_result1=cl.getPrograms(lang, page);
            break;
    }
    return "programs";
}
可选优化

如果要避免参数未传递时出现报错,可以给参数设置默认值:

// required = false表示参数非必传,defaultValue设置参数缺失时的默认值
public String ProgramsController(@RequestParam(required = false, defaultValue = "0") int oper, 
                                 @RequestParam(required = false, defaultValue = "1") int page, 
                                 Model model)

内容的提问来源于stack exchange,提问作者Mikhail Grebenev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:36:00