当前位置: 首页 > 知识库问答 >
问题:

日期的Spring表单标记出现奇怪错误

凤明朗
2023-03-14

我有

public class FormInputValidationTest {

private String email;
private Date dob;
private String doj;
private String desig;
@RequestMapping(value = "/validation", method = RequestMethod.GET)
public String new_validation(Locale locale, Model model) {
    FormInputValidationTest fivt = new FormInputValidationTest();
    logger.info("in validation for GET request");
    model.addAttribute("fivt",fivt);
    return "validation";
}

@RequestMapping(value = "/validation", method = RequestMethod.POST)
public String new_validation(@ModelAttribute("fivt") FormInputValidationTest fivt, Locale locale, Model model, HttpServletRequest req) {
    logger.info("in validation for POST request");
    logger.info("email received from user input is : {}",fivt.getEmail());
//  logger.info("dob received from user input is : {}",fivt.getDob().toString());
    logger.info("desig received from user input is : {}",fivt.getDesig());
    logger.info("doj received from user input is : {}",fivt.getDoj());
    model.addAttribute("message","successfully added");
    return new_validation(locale, model);
}
   <%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
   <%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
   <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
   <%@ page session="false"%>
    <html>
    <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <title>Search/View</title>
     </head>
     <body>
        <h1></h1>
      <!-- modelAttribute="fivt" -->
     <form:form method="post" action="validation" commandName="fivt" accept-charset="utf-8">
    <table>
        <tr>
            <td><form:label path="email">Email</form:label></td>
            <td><form:input path="email" /></td>
        </tr>
         <!--   <tr> -->
         <%--   <td><form:label path="dob">DB</form:label></td> --%>
         <%--   <td><form:input path="dob" /></td> --%>
         <!--   </tr> -->
            <tr>
            <td><form:label path="doj">DOJ</form:label></td>
            <td><form:input path="doj" /></td>
        </tr>           
        <tr>
            <td><form:label path="desig">Desig</form:label></td>
            <td><form:input path="desig" /></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="Submit" /></td>
        </tr>
        </table>    
        </form:form>
     </body>
     </html>
     type Status report

     message

     description The request sent by the client was syntactically incorrect.

PS:即使我在表单标记中使用modelattribute=“fivt”也是一样的

共有1个答案

姬弘文
2023-03-14

无论何时提交窗体,其值都是String类型。现在,当您编写“Date dob”时,spring试图为Date变量赋字符串值,这是不可能的。正确的方法是在日期变量上使用@DateTimeFormat注释,告诉spring将传入的字符串值转换为相应的日期值。

参考这篇文章

 类似资料:
  • 问题内容: 我一般对Python和编程都不熟悉,所以如果我遗漏了一些明显的东西,请提前道歉。我正在尝试绘制图形并标记轴,但是每次尝试标记y轴时都会引发异常。我在下面的新脚本中编写了代码,以确保问题不是来自模块中的其他地方。我正在使用Python 3.4。 每次,我在最后一行收到错误“ TypeError:’str’对象不可调用”。如果我将y更改为x,一切都很好。如果将x更改为ay,则会收到相同的错

  • 我正在这样的控制器上播放视频: 即使在控制器被销毁并且不再使用之后,我每秒钟左右都会收到这条日志消息: 我不是在问如何隐藏这些日志。我知道如何通过将

  • 我在打印报告时出现了一个奇怪的错误。

  • 当我试图从我的thymeleaf html表单中保存一个Date输入到控制器时,我收到一条错误消息。它似乎是作为字符串从表单中发送的,但我希望它作为Date发送。我设置了输入类型=date,所以我不确定它为什么出错。这是错误: 下面是该部分的html代码,expirationDate是我发送回控制器的卡对象的一个属性: 这是控制器。获取日期值并在表单中预先填写可以很好地工作,但由于某种原因,当我提

  • 我有以下标签,它们工作得很好 它们位于form:form标签中。页面加载良好。 有什么想法吗?谢谢

  • 我最近开始了我的第一个libGDX游戏,一切都进行得很好,所有的东西都呈现得很好,但是大约一分钟后什么都没有呈现,呈现调用仍然被发出,并且spritebatch工作得很好,我只是留下了一个黑屏,我甚至把'gl clearcolor()'改成了但我仍然留下了一个黑屏。我不知道这会是什么。 我的主要类: 编辑:我们已经确定,经过一段时间SpriteBatch渲染一个黑色屏幕的红色清晰颜色,它也停止渲染