- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要向我的实体添加日期,并让用户在 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 错误(Bad request)(注意:Date startDate = new Date();)
那么,问题是:如何使用 thymeleaf 输入日期?
我的 Controller :
@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;
}
最佳答案
查看带有错误日志的注释,它似乎是 String
到 java.util.Date
之间的转换问题。在 Thymeleaf GitHub 中搜索了一段时间后,我看到了两个可以解释在这种情况下如何进行的问题:
从最后一点开始,我给你的项目类的开始日期添加了一个注释:
// This is "org.springframework.format.annotation.DateTimeFormat"
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date start;
在那之后,我能够在您的 Controller POST 方法中接收到日期。
考虑到您还需要更改模板中的 th:value
和 th:field
属性,以获取 ${project.start 中的日期值}
到 *{start}
,就像我在评论中写的那样,正如您对 name
和 description
字段所做的那样。
关于java - 输入类型 ="date"thymeleaf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38693971/
我有一个测试即将进行,我想澄清两个有关参数的问题。 在我的笔记中指出,将参数传递给函数的推荐方法是使用“按引用传递” const type& x; // for "in" parameters
当我通过 OMG 2.5(Beta)推广的 UML 规范阅读以下概念时: in: Indicates that Parameter values are passed in by the caller
我试图在用户按下 Enter 时触发一个函数。我将此输入设置为只读的原因是限制用户在填充值后修改输入中的值。 该值来自将在点击属性中触发的弹出窗口。问题是 keyup.enter 没有触发该输入。 代
我在jQuery中使用模式弹出窗口控件,该弹出窗口具有由jQuery Tokenize输入插件提供动力的输入文本。问题是,当我在模式弹出文本框中键入内容时, token 化插件的搜索结果显示为隐藏在弹
我有一个问题。当我选中复选框时,系统工作正常,总值发生变化,但一旦我修改文本输入,它就会变为 0。我需要将此文本框输入排除在更改值之外。 这是 html: $15000 $
我正在努力让它发挥作用,但还是有些不对劲。 我想用 CSS 设置提交按钮的样式以匹配我已有的按钮。 风格: input[type="button"], input[type="submit"], b
import java.util.*;; public class selection { Scanner in=new Scanner(System.in); private
这可能是一个非常菜鸟的问题。假设我有一个带宽限制为 100MB/s 的网卡,那么输入/输出带宽是否有可能达到该限制 同时 ?或者我会在任何时候遇到这个不等式:in bandwidth + out ba
看着这个问题,Fill immutable map with for loop upon creation ,我很好奇是什么this表示在 Map(1 -> this) . scala> Map(1
我有这样的东西 一个 乙 问? 是或否 数字 数字或零 我想做的是: 如果 B1 = “Y”,则让用户在 B2 中输入一个数字。 如果 B1 = “N”,则将 B2 中的值更改为零,并且不允许用户在
我有一个包含许多列的表,我想添加 input标题单元格内的字段,但我希望输入适合根据正文内容的宽度。 这是没有 input 的样子领域: 这就是 input 的样子领域: 可以看出,像“index”和
关于为 FTP 客户端设置传出和传入文件夹,您遵循哪些最佳实践(如果有)?我们通常使用“outgoing”和“incoming”,但无论你如何表述方向,它都可以有两种解释方式,具体取决于名称相对于哪一
我正在尝试“求解”给定 d 的 Pell 方程:x^2 - d * y^2 = 1,或者至少我想得到最小的 x > 0 来求解方程。到目前为止,一切都很好。这是我的 Haskell 代码 minX :
我是VS Code的新手,可以使用Ctrl + Enter将代码运行到python交互式窗口中。我希望光标自动移动到下一行,因此我可以逐行浏览代码。 能做到吗? 最佳答案 如this blog pos
我正在创建一个 bool 值矩阵/二维数组,并且我想为 dategrid 推断一种不仅仅是“ANY”的类型。 let yearRange = [2000,2001,2002,2003,2004]; l
我有两个排序的列表,例如 a = [1, 4, 7, 8] b = [1, 2, 3, 4, 5, 6] 我想知道a中的每个项目是否在b中。对于上面的示例,我想找到 a_in_b = [True, T
菜鸟警报 这很奇怪 - 当我编写以下代码时,尝试在 AngularJS 中创建自定义指令: myModule.directive('myTab', function(){ console.lo
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
假设我正在使用 gdscript 静态类型,并且对于一个函数参数,我事先不知道我会得到什么。这就是 python 中 typing.Any 的作用。如何使用 gdscript 做到这一点? 似乎 Va
我使用 dropzone 上传多个图像,并且工作正常,直到我想为每个图像插入品牌和网址。 我遇到的唯一问题是,当我要从输入字段获取值时,我会从服务器获取来自字段(品牌、网址)的未定义值,但如果我使用静
我是一名优秀的程序员,十分优秀!