Javascript 为什么ArrayList中的第一个值在Java中总是返回null?

Javascript 为什么ArrayList中的第一个值在Java中总是返回null?,javascript,java,spring-boot,arraylist,thymeleaf,Javascript,Java,Spring Boot,Arraylist,Thymeleaf,当我为学校的小网站项目编写代码时,我遇到了一个让我发疯的错误(可能是我犯的) 我得到了一个包含我创建的对象(用户)的ArrayList。。。目前为4: public static ArrayList<Nutzer> users = new ArrayList<Nutzer>(); ... public static void init() { Nutzer testNutzer1 = new Nutzer("joey", "Gothra", "10",

当我为学校的小网站项目编写代码时,我遇到了一个让我发疯的错误(可能是我犯的)

我得到了一个包含我创建的对象(用户)的ArrayList。。。目前为4:

public static ArrayList<Nutzer> users = new ArrayList<Nutzer>();
...
public static void init() {

        Nutzer testNutzer1 = new Nutzer("joey", "Gothra", "10", null);
        Nutzer testNutzer2 = new Nutzer("Badshah", "Gothra", "10", "Test");
        Nutzer testNutzer3 = new Nutzer("Ray", "Gothra", "10", "Baum");
        Nutzer testNutzer4 = new Nutzer("Sven", "Gothra", "10", "Niemand");

        users.add(testNutzer1);
        users.add(testNutzer2);
        users.add(testNutzer3);
        users.add(testNutzer4);
第一个值总是“null”,我不知道为什么,因为其他一切都很好

有什么建议或解决办法吗?我已经在谷歌上搜索了很多,但什么也没找到

编辑: 这是我的“Nutzer”课程:


如果这是您真正的
Nutzer
类(而不是包含其他错误的编辑版本),那么您的问题很可能是
vorname
字段的设置器:

public String getVorname() {
    return vorname;
}
public void setVorame(String vorname) {
    this.vorname = vorname;
}

setters的名字拼错了:你把它命名为
setVorame()
,而你的小问题是“我怎样才能把帖子变成put?”我相信答案是,你不能。但是,您可以在spring中使用一个隐藏的输入字段来伪造和删除http方法:……我将对此进行研究。。。谢谢:)在你的代码中有两件事情看起来并不完全正确。但是,这些都是猜测和你可以尝试的东西。。。更改DTO的构造函数,以使ArrayList符合您的要求,而不是注入ArrayList。然后将DTO插入/自动连接到
@控制器中,而不是通过
@RequestMapping
方法将其传入。我感觉你有不止一个ArrayList对象。你能展示一下你的
Nutzer
类吗?也许问题就在这里。我现在用我的
Nutzer
classe编辑了这篇文章哦,天哪!!!非常感谢你,先生!!我通过构建一个全新的数据结构解决了这个问题,谢天谢地,我认为我的代码现在比最初的要好得多。。。我从这个项目中学到了很多。。。谢谢你的时间和建议编辑:实际上不是。。。。我用我的旧文件重新创建了它,Spring甚至不会启动项目,因为有一个未知的“Setter”。。。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Edit</title>
</head>
<script th:inline="javascript">
function() sendDaten(){
/*<![CDATA[*/
var data = /*[[${formular.besucher}]]*/
/*]]>*/     
var url = "http://localhost:8080/edit";
var json = JSON.stringify(data);
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xhr.onload = function () {
    var users = JSON.parse(xhr.responseText);
    if (xhr.readyState == 4 && xhr.status == "200") {
        console.table(users);
    } else {
        console.error(users);
    }
}
xhr.send(json);
}
</script>
<body>
    <div class="container">
        <div class="row">
            <div class="col-md-12">                                                             <!-- AHA WTF -->
                <h1>Teilnehmer bearbeiten</h1>
            </div>
        </div>
        <div class="row">
            <div class="col-md-6">                                                      
                <a class="btn btn-info" href="#" th:href="@{/Overview}"> Zurück zur Übersicht </a>
                <form action="#" class="form-horizontal" th:action="@{/edit}"                                       
                    th:object="${formular.besucher}" method="post">                                             
                    <fieldset>
                        <span class="pull-right"> <input onclick="sendDaten()" type="submit" id="submitButton" class="btn btn-success" th:value="Speichern">
                            <input type="reset" id="resetButton" class="btn btn-danger" th:value="Zurücksetzen" />
                             <button onclick="sendDaten();">Click</button>
                        </span>
                        <table class="table">
                            <thead>
                                <tr>
                                    <th>Vorname</th>
                                    <th>Nachname</th>
                                    <th>Karten</th>
                                    <th>Wunschsitzpartner</th>              
                                </tr>
                            </thead>
                            <tbody>
                                <tr th:each="u, itemStat : ${formular.besucher}">
                                    <td><input 
                                        th:placeholder="Vorname"
                                        th:name="|besucher[${itemStat.index}].vorname|"
                                        th:value="${u.getVorname()}" required /></td>
                                    <td><input
                                        th:placeholder="Nachname"
                                        th:name="|besucher[${itemStat.index}].nachname|"
                                        th:value="${u.getNachname()}" required /></td>
                                    <td><input
                                        th:placeholder="Karten"
                                        th:name="|besucher[${itemStat.index}].karten|"
                                        th:value="${u.getKarten()}" required /></td>
                                    <td><input
                                        th:placeholder="Wunschsitzpartner"
                                        th:name="|besucher[${itemStat.index}].sitzpartner|"
                                        th:value="${u.getSitzpartner()}"/></td>   
                                </tr>
                            </tbody>
                        </table>

                    </fieldset>
                </form>
            </div>
        </div>
    </div>
</body>
</html>
    @RequestMapping(value = "/edit", method = RequestMethod.POST, consumes = "application/x-www-form-urlencoded")
    public String updateTest(NutzerErstellenDTO dto)
        List<Nutzer> test = dto.getBesucher();
        for (Nutzer nutzer : test) {
            System.out.println("test: " + nutzer.getVorname() + nutzer.getNachname() + nutzer.getKarten() + nutzer.getSitzpartner());
        }
test: nullGothraTestEditWorksFine10*edited
public class Nutzer {

    private String vorname;
    private String nachname;
    private String karten;
    private String sitzpartner;

    public Nutzer() {   
    }
    public Nutzer(String vorname, String nachname, String karten, String sitzpartner) {
        super();
        this.vorname = vorname;
        this.nachname = nachname;
        this.karten = karten;
        this.sitzpartner = sitzpartner;
    }
    public void display() {
        System.out.println(vorname + nachname + karten + sitzpartner);
    }
    public String getVorname() {
        return vorname;
    }
    public void setVorame(String vorname) {
        this.vorname = vorname;
    }
    public String getNachname() {
        return nachname;
    }
    public void setNachname(String nachname) {
        this.nachname = nachname;
    }
    public String getKarten() {
        return karten;
    }
    public void setKarten(String karten) {
        this.karten = karten;
    }
    public String getSitzpartner() {
        return sitzpartner;
    }
    public void setSitzpartner(String sitzpartner) {
        this.sitzpartner = sitzpartner;
    }
public String getVorname() {
    return vorname;
}
public void setVorame(String vorname) {
    this.vorname = vorname;
}