汪的爱琪 2023-08-15 12:08 采纳率: 67.5%
浏览 5
已结题

SSM框架和前端ajax数据传递问题

前端ajax


<%--
  Created by IntelliJ IDEA.
  User: 汪海洋
  Date: 2023/8/14
  Time: 12:43
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>评论区</title>
</head>
<body>
        ID:<input type="text" name="id" id="id"/><br><br>
        评论:<textarea name="comment" id="words"></textarea><br><br>
        <button onclick="setDate()">发表评论</button>
        <div id="comments"></div>
</body>
<script type="text/javascript">
    function setDate() {
        const time = new Date();
        const data = {
            id : document.getElementById("id").value,
            comment : document.getElementById("words").value,
            time : time.toLocaleDateString()
        }
        var xhr =new XMLHttpRequest()
        xhr.open("POST","/addComment",true)
        xhr.setRequestHeader('Content-Type', 'application/json');
        xhr.onreadystatechange = function () {
            if(xhr.status === 200  && xhr.readyState === 4){
                console.log("请求发送成功,服务器端口响应全部数据!")
            }
        }
        xhr.send(JSON.stringify(data));
        xhr.timeout = 2000
        xhr.timeout =function () {
            alert("超时!")
        }
        xhr.onerror =function () {
            alert("网络异常!")
        }
    }

    // setInterval(getComments,1000);
    getComments()
    function getComments() {
        // const id = document.getElementById("comments").value;
        const  id = document.getElementById("comments")
        const xhr = new XMLHttpRequest();
        xhr.open("GET","loadComments?id=1",true);
        xhr.onreadystatechange = function (){
            if (xhr.status === 200 && xhr.readyState ===4){
                let data = xhr.response.list
                console.log(data)

                for(let i =0 ; i<data.length ; i++){
                    id.innerHTML = data[i].id+"<br>"+
                    data[i].comment+"<br>"+
                    data[i].time+"<br>"
                }

            }
        }
        xhr.send()
        xhr.timeout = 2000
        xhr.timeout =function () {
            alert("超时!")
        }
        xhr.onerror =function () {
            alert("网络异常!")
        }
    }
</script>
</html>


后端

package com.experience.controller;

import com.experience.entity.Comment;
import com.experience.service.Comment_load_service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.testng.annotations.Test;

import java.util.List;

/**
 * @author 汪海洋
 */
@Controller
public class Comment_load_Controller {
    @Autowired
    Comment_load_service comment_load_service;
    @RequestMapping("/loadComments")
    @ResponseBody
    public void show(@RequestParam(value = "id", required = true) int id) {
        List<Comment> list = comment_load_service.getComments(id);
        for (Comment comment : list) {
            System.out.println(comment.toString()
            );
        }

    }
}


错误

img

img

HTTP状态 500 - 内部服务器错误

类型 异常报告

消息 Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer'

描述 服务器遇到一个意外的情况,阻止它完成请求。

例外情况

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer'
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)

根本原因。

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer'
    org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96)
    org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
    jdk.proxy3/jdk.proxy3.$Proxy16.selectList(Unknown Source)
    org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)
    org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:139)
    org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)
    org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
    jdk.proxy3/jdk.proxy3.$Proxy19.getComments(Unknown Source)
    com.experience.service.impl.Comment_load_service_impl.getComments(Comment_load_service_impl.java:17)
    com.experience.controller.Comment_load_Controller.show(Comment_load_Controller.java:24)
    java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    java.base/java.lang.reflect.Method.invoke(Method.java:578)
    org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
    org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
    org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
    org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)

根本原因。

org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.Integer'
    org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:419)
    org.apache.ibatis.reflection.MetaClass.getGetInvoker(MetaClass.java:164)
    org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:162)
    org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:49)
    org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122)
    org.apache.ibatis.scripting.xmltags.DynamicContext$ContextMap.get(DynamicContext.java:94)
    org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:108)
    org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2685)
    org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:114)
    org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
    org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
    org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)
    org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
    org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
    org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:61)
    org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
    org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
    org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:470)
    org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:434)
    org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:44)
    org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)
    org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)
    org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)
    org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)
    org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)
    org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:41)
    org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:292)
    org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)
    org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
    org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
    java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    java.base/java.lang.reflect.Method.invoke(Method.java:578)
    org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
    jdk.proxy3/jdk.proxy3.$Proxy16.selectList(Unknown Source)
    org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)
    org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:139)
    org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)
    org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
    jdk.proxy3/jdk.proxy3.$Proxy19.getComments(Unknown Source)
    com.experience.service.impl.Comment_load_service_impl.getComments(Comment_load_service_impl.java:17)
    com.experience.controller.Comment_load_Controller.show(Comment_load_Controller.java:24)
    java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    java.base/java.lang.reflect.Method.invoke(Method.java:578)
    org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
    org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
    org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
    org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)

):注意 主要问题的全部 stack 信息可以在 server logs 里查看

  • 写回答

3条回答 默认 最新

  • 兴奋的大母鸡 2023-08-15 13:25
    关注

    建议所有的实体类使用lambok插件,自动注入getset方法,另外我上一个问题麻烦采纳一下啊兄弟,帮你解决问题不采纳,很难受哇

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 修改了问题 8月15日
  • 创建了问题 8月15日

悬赏问题

  • ¥15 有人会用py或者r画这种图吗
  • ¥15 MOD04_3K图像预处理
  • ¥15 [VASP]关于超胞大小和k 点网格的收敛性测试
  • ¥15 pip下载paddle2onnx离谱错误
  • ¥60 db2move nlzxams import 导出db2备份数据报错
  • ¥15 关于#python#的问题:全文总结功能咨询
  • ¥15 俄罗斯方块中无法同时消除多个满行
  • ¥15 使用gojs3.0,如何在nodeDataArray设置好text的位置,再go.TextBlock alignment中进行相应的改变
  • ¥15 psfusion图像融合指标很低
  • ¥15 银河麒麟linux系统如何修改/etc/hosts权限为777