当前位置: 首页 > 面试题库 >

输入类型=“日期”百里香

狄心水
2023-03-14
问题内容

我需要将日期添加到我的实体中,然后让用户以Web形式进行设置。默认情况下,此字段需要填写今天的日期。

1. <input type="date" value="2016-08-01">

显示正确的默认日期设置

2. <input type="date" th:value="${startDate}">

显示没有任何值的日期选择器(注意:String startDate =“ 2016-08-01”;)

3. <input type="date" th:field="${startDate}">

生成400错误(错误请求)(注意:Date startDate = new Date();)

因此,问题是:如何使用百里香作为输入日期?

  • 如何使用Date()数据类型进行输入并存储此类数据?
  • 我该如何在表单中设置“ th:field”?
  • 我需要如何以相同的形式设置“ th:value”?

我的控制器:

@RequestMapping("/project_new")
public String createProject(Model model) {
    Project project = new Project ();
    List<Role> roles = mRoleService.findAll();

    project.setStart(new Date());

    model.addAttribute("page_title", "create project");
    model.addAttribute("roles", roles);
    model.addAttribute("statuses", Status.values());
    model.addAttribute("project", project);
    return "project_new";
}

@RequestMapping(value = "/project_new", method = RequestMethod.POST)
public String createProject(@ModelAttribute Project project, Model model) {
    // Fill id field for project.rolesNeeded
    mRoleService.setRolesId(project.getRolesNeeded());
    project.fixCollaboratorsAndRoles();

    mProjectService.save(project);
    return "redirect:/";
}

我的模板:

<form th:action="@{/project_new}" method="post" th:object="${project}">
  <div class="project-list single">
    <label for="name">Name:</label>
    <input type="text" id="name" required="true" th:placeholder="*{name}" th:value="*{name}" th:field="*{name}"/>
    <label for="description">Description:</label>
    <textarea rows="5" id="description" type="text"  required="true" th:placeholder="*{description}" th:value="*{description}" th:field="*{description}"/>

    <label for="date-started">Date started:</label>
    <input type="date" th:value="${project.start}" th:field="${project.start}" id="date-started"/>

    <div>
      <label for="project_status">Project Status:</label>
      <div class="custom-select">
        <span class="dropdown-arrow"></span>
        <select th:field="*{status}" id="project_status">
          <option th:each="s : ${statuses}" th:value="${s}" th:text="${s}">Active</option>
        </select>
      </div>
    </div>

  <div class="roles-collaborators">
    <ul class="checkbox-list">
      <li th:if="${role.name} ne 'Undefined'" th:each="role : ${roles}">
      <input type="checkbox"  th:value="${role}" th:field="${project.rolesNeeded}" class="checkbox"/>
      <span th:text="${role.name}" th:value="${role}" class="checkbox">Developer</span>
      </li>
    </ul>
  </div>

  <div class="actions">
    <button type="submit" class="button">Save</button>
    <a th:href="@{/}" class="button button-secondary">Cancel</a>
  </div>
</div>
</form>

项目实体:

@Entity
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@NotNull
@Size (min = 3)
private String name;

@Column(columnDefinition="TEXT")
private String description;

@Column
private Status status;

@Column
private Date start;

@ManyToMany
@LazyCollection(LazyCollectionOption.FALSE)
private List<Role> rolesNeeded;

@ManyToMany
@LazyCollection(LazyCollectionOption.FALSE)
private List<Collaborator> collaborators;

public Date getStart() {
    return start;
}

public void setStart(Date start) {
    this.start = start;
}

问题答案:

纵观在与错误日志的评论似乎是之间的转换问题Stringjava.util.Date。在Thymeleaf
GitHub上搜索了一段时间后,我看到了两个问题可以解释在这种情况下的处理方法:

  • 关于转换的讨论,包括本期的日期。
  • 转换的实现是解释在这里。

从最后一点开始,我在项目类的开始日期添加了注释:

// This is "org.springframework.format.annotation.DateTimeFormat"
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date start;

之后,我就可以通过控制器的POST方法接收日期了。

考虑到您还需要像您在and 字段中所做的那样,将模板的th:valueand
th:field属性从日期值的模板更改为${project.start}to
*{start},就像我在评论中所写的那样。name``description



 类似资料:
  • 我有一个带有日期字段的Laravel应用程序。 当我使用“type=text”时 我获取存储在数据库中的值。 当我使用“type=date”时 我得到dd/mm/yyyy和一个下拉列表(datepicker)来为每一个选择一个数字。我本以为dd、mm和yyyy会预先填充我数据库中的日期。 当输入=text工作时,我不喜欢这样,因为使用可以输入该字段中的任何文本。 最好的方法是什么?保留输入=日期并

  • 我正在创建一个简单的HTML表单以及Thymelaf,我在我的Spring Boot应用程序中使用它。 在表单中,我指定了以下语句: 但是,表单中显示的值不是评级,而是0。 删除0后,占位符最终会出现。 编辑< br >显然,百里香叶似乎导致了这里的问题。

  • 问题内容: 在我的第一个Django应用程序上工作,我有一个模型,其中定义了some ,然后关闭了该模型,即 models.py views.py 然后在我的html中使用django为我呈现表单 但是具有输入类型的文本,而不是日期。有办法改变吗? 问题答案: 您可以创建一个自定义窗口小部件:

  • 问题内容: 我正在做一个phonegap应用。当我尝试如下所示的输入字段时,它按预期显示了iPhone中的日期选择器,但没有显示我给定的占位符。我在SO中发现了相同的问题,但没有解决方案。 问题答案: 可能不合适……但这对我有所帮助。

  • 我刚Java /Spring/Thymeleaf,所以请接受我目前的理解水平。我确实复习了这个类似的问题,但没能解决我的问题。 我试图得到一个简化的日期,而不是长日期格式。 ​ html格式: 电流输出

  • 使用Javascript,如何检测日期输入字段(输入[type=date])中日期的格式? 像Modernizr这样的工具只检测到使用HTML5日期选择器的能力(尤其适合移动设备及其UI来选择日期)。然而,我还没有找到任何解决方案来检测浏览器使用的格式。 我有一个这样的输入字段: 如果在localStorage中找到该值,则使用jQuery调用输入该值。我认为由于min和max属性的有效日期格式是