java - html + Java |从输入类型 ="time"接收 0

标签 java html spring input thymeleaf

我正在尝试制作一个网络应用程序,您应该在其中选择您醒来的时间。我正在使用 Spring,并使用 Thymeleaf 作为 java 和 html 之间的连接器。但无论我选择什么时间,它都会返回0。

我的开始日类(class):

/* ----------------------------
|        StartDay Class       |
------------------------------ */

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

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "start_day_id")
private int startDayId;
@Column(name = "age_in_days", nullable = false)
private int ageInDays;
@Column(name = "day_created", nullable = false)
private String dayCreated;
@Column(name = "username", nullable = false)
private String username;
@Column(name = "dream_remembered", nullable = false)
private boolean dreamRemembered;
@Column(name = "nightmare", nullable = false)
private boolean nightmare;
@Column(name = "waking_time", nullable = false)
private int wakingTime;
@Column(name = "good_night_of_sleep", nullable = false)
private boolean goodNightOfSleep;



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

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

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

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() {
}

}

我的 start-dag.html 页面:

<form th:action="@{/normal/start-dag}" th:object="${startDay}" method="post">
    <div>
        <p>Hvad tid stod du op?</p>
        <input type="time" name="wakingTime">

        <p>Har du sovet godt?</p>
        <!--<input type="checkbox" name="goodNightOfSleep"><span>Ja</span>-->

        <p>Kan du huske hvad du drømte?</p>
        <input type="checkbox" name="dreamRemembered"><span>Ja</span>

        <p>Var det et mareridt?</p>
        <input type="checkbox" name="nightmare"><span>Ja</span>

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

        <input type="submit" value="Start dag">
    </div>
</form>

感谢任何帮助/建议!

更新#1 – 添加更多代码

我的 StartDayController

// Start\create day
    @GetMapping("/normal/start-dag")
    public  String opretGoal(Model model){
        StartDay startDay = new StartDay();
        model.addAttribute("startDay", startDay);
        return "normal/start-dag";
    }
    @PostMapping("/normal/start-dag")
    public String opretGoal(@ModelAttribute StartDay startDay, BindingResult bindingResult){

        startDayService.createGoalOfTheDay(startDay);

        return "redirect:/normal/menu";
    }

Test on frontEnd

最佳答案

@Column(name = "waking_time", nullable = false)
private int wakingTime;

您正在发送 08:00 作为输入并接受 int 值。您可以接受像

@DateTimeFormat
@Column(name = "waking_time", nullable = false)
private Date wakingTime;

并将其转换为所需的格式。

或者如果您想接受时间为 08:00。接受它作为字符串。

@Column(name = "waking_time", nullable = false)
private String wakingTime;

关于java - html + Java |从输入类型 ="time"接收 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51419384/

相关文章:

java - 在 BeanPropertyRowMapper 中注册属性转换器

java - 在哪里可以找到编译 servlet 所需的 javax.servlet 类?

html - 具有最大宽度和最大高度过渡的图像在正确调整大小之前变大

javascript - 如何正确获取 JSON 对象来代替 [Object 对象]?

java - 如何将代理注入(inject)服务?

java - C#加密代码移植到Java

jquery - 如何提醒下周的开始和结束日期

java - hibernate 抛出 HibernateQueryException : could not resolve property

java - 是否可以在 Grails 中使用 Kotlin?

java - 何时使用 Java 中的 Writer 子类;常见做法