aasdasd1ghfh 2023-10-12 11:33 采纳率: 10.7%
浏览 13
已结题

求大shen看一看怎么改,前端向后端传list

找到解决办法,顺便记录一下,希望能帮到有类似问题的人
如图所示

img

img

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: No primary or single public constructor found for interface java.util.List - and no default constructor found either] with root cause

java.lang.IllegalStateException: No primary or single public constructor found for interface java.util.List - and no default constructor found either

本来是java.lang.IllegalArgumentException: Invalid character found in the request target [/deleteShoucang?a[0][post_url]=1&a[1][post_url]=2 ]. The valid characters are defined in RFC 7230 and RFC 3986 这个问题

解决起来很简单,不需要什么@什么的
首先是tomcat7.0以上传不了list,就是上面的问题,解决是创建一个类,内容是

import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class TomcatConfig {
    @Bean
    public TomcatServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.addConnectorCustomizers((Connector connector) -> {
            connector.setProperty("relaxedPathChars", "\"<>[\\]^`{|}");
            connector.setProperty("relaxedQueryChars", "\"<>[\\]^`{|}");
        });
        return factory;
    }
}


然后再创建一个vo类,就一个参数,LIst list,然后get,set那一揽子方法,这个类的名字是listList,那么接受参数的时候方法体是
public String test(listList list)

import java.util.List;

public class listList {
    List list;

    public listList() {
        super();
    }

    @Override
    public String toString() {
        return "listList{" +
                "list=" + list +
                '}';
    }

    public List getList() {
        return list;
    }

    public void setList(List list) {
        this.list = list;
    }

    public listList(List list) {
        this.list = list;
    }
}


@RestController
public class testController {
    @PostMapping("/test")
    public String  test(listList list){
        System.out.println(list);
        return "ok";
    }
}


  • 写回答

5条回答 默认 最新

  • 一只成序源 2023-10-12 11:58
    关注

    前端写的没问题,java里面报错,这个得请专业java大神看看

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月19日
  • 修改了问题 10月19日
  • 修改了问题 10月12日
  • 修改了问题 10月12日
  • 展开全部

悬赏问题

  • ¥15 C# 用partial定义部分类无法快速预览代码
  • ¥15 fastreport 代码无法设置最后一页横线不显示
  • ¥15 stm32u535芯片usb hid custom类接收数据有问题
  • ¥20 quartus功能仿真
  • ¥15 传染病最优控制问题,控制为什么没起作用
  • ¥15 ue5.3 pico打包失败 求帮助
  • ¥15 请教,这是用chatgpt写的CAD LISPD脚本,需求是画一个由双直线组成的矩形
  • ¥50 微信小程序 成功包奶茶啊
  • ¥15 计算机博弈的六子棋代码
  • ¥15 在Fetch API中传送的参数为何不起作用?