lundi 16 juillet 2018

Spring + Java | How do I make a checkbox able to communicate either true or false back to java?

So far I have tried this solution, but it doesn't work. I receive a error:

There was an unexpected error (type=Bad Request, status=400). Validation failed for object='startDay'. Error count: 1

I have looked around and tried different workarounds, but I have no clue why i receive the validation error. Im studying computer science, but we have summerholidays, and I wanted to keep practicing my skills, so they dont fade away over the summer. So I decided to try to make this program, and ran into this checkbox problem.

Any help would be appreciated, down below is my code, which is related and used for the checkbox. Tell me if anything else is needed...

Thanks in advance!

My html:

  <form action="/normal/start-dag" method="post">
    <div>

        <table>
            <tr>
                <td>Kan du huske hvad du drømte?</td>
                <input type="checkbox" th:path="goodNightOfSleep">
            </tr>
        </table>
        <table>
            <tr>
                <td>Kan du huske hvad du drømte?</td>
                <input type="checkbox" th:path="dreamRemebered">
            </tr>
        </table>
        <table>
            <tr>
                <td>Var det et mareridt?</td>
                <input type="checkbox" th:path="nightmare">
            </tr>
        </table>

        <input type="number" name="wakingTime" placeholder="Hvad tid stod du op?">

        <input type="hidden" name="username">
        <input type="hidden" name="ageInDays" />
        <input type="hidden" name="dayCreated" />

        <input type="submit" value="Start dag">

    </div>
</form>

My StartDayController.java

@Controller
public class StartDayController {

    @Autowired
    private UserService userService;
    @Autowired
    private StartDayService startDayService;


    // Start\create day
    @GetMapping("/normal/start-dag")
    public  String opretGoal(){

        return "normal/start-dag";
    }
    @PostMapping("/normal/start-dag")
    public String opretGoal(@ModelAttribute StartDay startDay){


        startDayService.createGoalOfTheDay(startDay);

        return "normal/menu";
   }
}

and of course my StartDay.java class:

@Entity
@Table(name = "start_day")
public class StartDay {

@Id
@Column(name = "age_in_days", nullable = true)
private int ageInDays;
@Column(name = "day_created", nullable = true)
private String dayCreated;
@Column(name = "username", nullable = true)
private String username;
@Column(name = "dream_remembered", nullable = true)
private boolean dreamRemembered;
@Column(name = "nightmare", nullable = true)
private boolean nightmare;
@Column(name = "waking_time", nullable = true)
private int wakingTime;
@Column(name = "good_night_of_sleep", nullable = true)
private boolean goodNightOfSleep;


/* ------------------------------
|        Getter & Setter        |
------------------------------ */

public int getAgeInDays() {
    return ageInDays;
}
public void setAgeInDays(int ageInDays) {
    this.ageInDays = ageInDays;
}

public String getDayCreated() {
    return dayCreated;
}
public void setDayCreated(String dayCreated) {
    this.dayCreated = dayCreated;
}

public boolean isDreamRemembered() {
    return dreamRemembered;
}
public void setDreamRemembered(boolean dreamRemembered) {
    this.dreamRemembered = dreamRemembered;
}

public boolean isNightmare() {
    return nightmare;
}
public void setNightmare(boolean nightmare) {
    this.nightmare = nightmare;
}

public int getWakingTime() {
    return wakingTime;
}
public void setWakingTime(int wakingTime) {
    this.wakingTime = wakingTime;
}

public boolean isGoodNightOfSleep() {
    return goodNightOfSleep;
}
public void setGoodNightOfSleep(boolean goodNightOfSleep) {
    this.goodNightOfSleep = goodNightOfSleep;
}

public String getUsername() {
    return username;
}
public void setUsername(String userId) {
    this.username = userId;
}

/* ------------------------------
|          CONSTRUCTOR          |
------------------------------ */

public StartDay(int ageInDays, String dayCreated, String username, boolean dreamRemembered, boolean nightmare, int wakingTime, boolean goodNightOfSleep) {
    this.ageInDays = ageInDays;
    this.dayCreated = dayCreated;
    this.username = username;
    this.dreamRemembered = dreamRemembered;
    this.nightmare = nightmare;
    this.wakingTime = wakingTime;
    this.goodNightOfSleep = goodNightOfSleep;
}

public StartDay() {
}
}




Aucun commentaire:

Enregistrer un commentaire