spring mvc控制器错误java.lang.IllegalStateException:没有合适的参数解析器[0]

2024-05-06

代码给出错误

java.lang.IllegalStateException:没有合适的参数解析器 [0][类型=org.jopenclass.form.课程]

它向 ajax 调用发送 JSON 响应。我使用休眠来持久化对象。

    @RequestMapping(value = "/savecourse", method = RequestMethod.POST)
public @ResponseBody
Object saveLecturer(@Valid @ModelAttribute(value = "course") Course course,
        BindingResult result) {

    Map<String, Object> response = new HashMap<String, Object>();

    if (result.hasErrors()) {
        List<ObjectError> results = result.getAllErrors();
        for (ObjectError objectError : results) {
            System.out.println(objectError.getDefaultMessage());
        }
        response.put("message", "Could not add the Course to the system.");
    } else {
        try {
            course.setId(courseDao.saveCourse(course));//returns the id
            response.put("course", course);

        } catch (Exception e) {
            System.out.println(e);

        }
    }

    return response;
}

但是当我创建一个新对象并将参数复制到另一个对象时,它工作正常。第二种方法(当然不是一个好方法)效果很好。请求对象中的所有参数也设置为 cse 对象。

    @RequestMapping(value = "/savecourse", method = RequestMethod.POST)
public @ResponseBody
Object saveLecturer(@Valid @ModelAttribute(value = "course") Course course,
        BindingResult result) {

    Map<String, Object> response = new HashMap<String, Object>();

    if (result.hasErrors()) {
        List<ObjectError> results = result.getAllErrors();
        for (ObjectError objectError : results) {
            System.out.println(objectError.getDefaultMessage());
        }
        response.put("message", "Could not add the Course to the system.");
    } else {
        try {
            course.setId(courseDao.saveCourse(course));//returns the id
            Course cse = new Course();
            cse.setId(course.getId());
            cse.setCourseName(course.getCourseName());
            cse.setFee(course.getFee());
            Lecturer lec = new Lecturer();
            lec.setId(course.getLecturer().getId());
            lec.setFirstName(course.getLecturer().getFirstName());
            lec.setLastName(course.getLecturer().getLastName());
            cse.setLecturer(lec);
            cse.setGrade(course.getGrade());
            response.put("course", cse);

        } catch (Exception e) {
            System.out.println(e);

        }
    }

    return response;
}

第一种方法有什么问题?


在第一种情况下,杰克逊无法反序列化您的响应。我建议将您的返回类型更改为Map<String, ? extends object>如果问题仍然存在,请告诉我们

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring mvc控制器错误java.lang.IllegalStateException:没有合适的参数解析器[0] 的相关文章

  • 使用Java获取CSS文件中图像的URL?

    我正在尝试使用 Java 获取远程 CSS 文件中图像 所有 MIME 类型 的 URL 我正在使用 jsoup 来获取 css 的 URL 经过无数个小时的观看CSS解析器 http cssparser sourceforge net 由
  • 有没有办法检索有关 @Controller 定义的 spring 映射的信息?

    我希望能够创建一个页面 列出由带有注释的控制器发现的映射 Controller 我这样做是为了 REST 服务 它使我们能够轻松找到页面上实例可用的端点 到目前为止 我一直在手动执行此操作 但如果可以创建一个控制器 以一种令人愉快的格式很好
  • IntelliJ Ultimate 在 Play 2.3 (Java) 项目测试中找不到路由

    虽然我的测试运行得很好 但 IntelliJ 抱怨它找不到路由对象 并且代码自动完成无法工作 我已经查看了所有文档 这应该可以工作 这是 IntelliJ 的报告内容 关于我的项目配置可能有什么问题有什么想法吗 这很可能与以下事实有关 ro
  • 术语“引用”的起源,如“通过引用传递”

    Java C 语言律师喜欢说他们的语言按值传递引用 这意味着 引用 是调用函数时复制的对象指针 同时 在 C 中 以及 Perl 和 PHP 中更动态的形式 引用是其他名称 或动态情况下的运行时值 的别名 我对这里的词源感兴趣 参考 一词的
  • 向 JList 添加滚动条? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何将 JList 添加到 JScrollPane 把你的JList in a JScrollPane JScrollPane scrol
  • Maven 2 未运行 Junit 4 测试

    我在确保运行 Junit4 测试时遇到问题 同样的问题也被报告在https stackoverflow com questions 2021771 sort newest sort top https stackoverflow com q
  • IntSummaryStatistics的summaryStatistics方法

    为什么空 IntStream 上的 summaryStatistics 方法返回整数的最大和最小值作为流中存在的最大和最小 int 值 IntStream intStream IntStream of IntSummaryStatistic
  • 在 SWT 中单击鼠标触发事件?

    在SWT中 对于MouseListener接口 可用的方法有mouseUp mouseDown and mouseDoubleClick 如何根据用户点击触发事件 我们可以通过结合来做到这一点mouseUp and mouseDown 但没
  • 竞争性编码 - 以最低成本清除所有级别:未通过所有测试用例

    当我遇到这个问题时 我正在一个竞争性编码网站上解决问题 问题指出 游戏中有 N 个关卡和 M 种可用武器 等级编号从 0 到 N 1 武器编号从 0 到 M 1 您可以按任意顺序清除这些级别 在每个关卡中 需要这些 M 武器的某些子集才能通
  • 解密 TLS 1.2 AES-GCM 数据包

    我正在开发一个 Java 程序来解密TLS 1 2正在使用的会话TLS RSA WITH AES 128 GCM SHA256密码 我使用wireshark 录制了一个测试会话 这大师秘密是已知的 No Time Protocol Leng
  • 整数与 int 比较

    我是新来的java 我现在正在学习非原始整数类型java 我知道以下比较无效并引发编译错误 String str c Char chr c if str chr return true 上面的代码片段给了我 Test java lineNu
  • Android 反向地理编码不适用于华为设备

    我正在尝试通过这段代码反转地理编码纬度 经度 Geocoder geocoder new Geocoder context Locale ENGLISH try List
  • 属性文件中的字符串主机名:Java

    这听起来可能是一个非常简单的问题 但我无法找到解决方法 我有一个 config properties 文件 其中包含两个键值 IP 地址和端口号 我读取此配置文件以提取字符串格式的键值 但是 当我尝试使用这些值时 我无法连接到从配置文件中检
  • 如何使用键盘上的“删除”按钮作为从 JTable 中删除行的快捷方式[重复]

    这个问题在这里已经有答案了 可能的重复 如何制作删除按钮来删除JTable中的行 https stackoverflow com questions 13236206 how to make delete button to delete
  • Visual Studio Code - Java 类路径不完整。只会报告语法错误

    在使用 python 获得了丰富的经验之后 我正在使用 java 迈出第一步 我正在运行的脚本是一个简单的 Java Swing Gui 它可以从命令行和 VS Code 中正常编译和运行 为了设置 java 调试环境 我使用 github
  • Eclipse 在单独的窗口中打开代码

    我正在 eclipse 中编程 在两个显示器设置上运行 在其中一台显示器上 我只获得了项目资源管理器和编辑器作为自定义透视图 而在另一台显示器上 我获得了其他工具 例如控制台 调试 任务 变量 断点等 例如 当我单击任务视图中的任务时 这将
  • Spring Boot中服务接口类的用途

    我的问题是关于接口类的使用 我对 Spring 还很陌生 所以如果这过于简单 请耐心等待 首先 当您可以在 BoxService 中声明 find all 时 这里拥有 IBoxService 接口有什么意义 其次 在控制器中如何使用IBo
  • HQL 类似运算符,用于不区分大小写的搜索

    我正在使用 Jquery 实现自动完成功能 当我输入名称时 它会从数据库中获取记录 数据库中存储的记录是大写字母和小写字母的混合 我编写了一个 HQL 查询 它可以区分大小写地获取记录 但我需要不考虑大小写的记录 这是查询 List
  • 如何从 jenkins 的现有项目生成 .hpi 插件

    我正在尝试使用 jenkins 的性能插件 但最新版本存在一些问题 如链接中所述 https issues jenkins ci org browse JENKINS 27100 https issues jenkins ci org br
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种

随机推荐