Spring MVC与表单提交的问题

2019-03-25 13:32|来源: 网路

1.model:

public class UserType implements Serializable {
private static final long serialVersionUID = 1L;

private int id;
private String typeName;
private String remark;
private Date addDate;
private Date editDate;

2.
<form name="userTypeForm" method="post" action="create.do">
<fieldset>
<legend>用户类型</legend>
<p>
  <label for="typeName">类型名称:</label><br />
  <input name="typeName" type="text" value="${userType.typeName }"/>
</p>
<p>
  <label for="remark">备注:</label><br />
  <input name="remark" type="text" value="${userType.remark }"/>
</p>
<p>
  <label for="addDate">添加时间:</label><br /> 2011-9-2 10:19:23 <br />
  <input name="addDate" type="text" value="<fmt:formatDate value="${userType.addDate}" type="both" />"/>
</p>
<p>
  <label for="editDate">编辑时间:</label><br />
  <input name="editDate" type="text" value="<fmt:formatDate value="${userType.editDate}" type="both" />"/>
</p>
<p>
  <input type="submit" value="提交"/>
</p>
</fieldset>
</form>

3.controller 方法

@RequestMapping(value = "create", method = RequestMethod.POST)
public String create(@ModelAttribute UserType userType , Model model) {//BindException exception

}

4.问题

一般情况下,添加时间和更新时间都不需要用户填写,但是如果去掉了这两个input的话,将会出现异常,提示字符串""向Date类型转换异常,毕竟用户都没有输入,因此提示这个情有可原,然而这两个时间是不需要用户输入的,我希望在方法体中手工设置:setAddDate(new Date())和setEditDate(new Date())

请教这样的需求如何解决??

相关问答

更多
  • 这个问题比较常见。form表单提交给后台的数据类型是string,如果实体类属性上不加数据格式转换的话会报400的错(数据类型不匹配)。 解决方法: 在实体类属性上添加: @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00") private Date produceTime; // 生产时间 @JsonFormat是为了展示时添 ...
  • spring
  • jsp页面提交给Controller去处理,Controller主要完成的就是跳转的功能,具体的业务逻辑放到了service层,Controller调用service层,然后业务逻辑中要用到相关的数据,service层再掉用dao层,都处理完了,Controller会跳转到相应的路径去显示你请求的数据。具体就是这样。我这边有个简单的spring mvc的例子,实现了crud方法和ajax方法!需要的话留下邮箱。
  • 您是否尝试将以下注释添加到控制器类的顶部? @SessionAttributes({ "editForm" }) public class YourController { ... } Have you tried adding the following annotation to the top of your controller class ? @SessionAttributes({ "editForm" }) public class YourController { ... }
  • 你正在使用哪个版本的Liferay? 如果它是> 6.2 GA1 然后在liferay-portlet.xml文件中,添加此属性并重新编译并再次测试。 false Liferay默认情况下会将命名空间添加到请求参数中。 你需要禁用它。 Which version of Liferay you are using? if it is > 6.2 GA1 Then in your ...
  • 我认为你缺少上下文路径。 为了获得正确的请求路径,您应该附加上下文路径。 如果你使用的是spring标签lib 如果您使用的是jstl 然后在表单标签中指定操作 action="${something}" I think you are missing context path. In ord ...
  • 尝试调整@RequestMapping以接受JSON。 @RequestMapping( value="/save", method=RequestMethod.POST, consumes="application/json") Try adjusting your @RequestMapping to accept JSON. @RequestMapping( value="/save", method=RequestMethod.POST, c ...
  • 在尝试了许多解决方案后,我想通了。 首先,我序列化表单: var formFields = $('*:not(.no-serialize)', '#new-auction').serialize(); 然后我解析了这个字符串转换成这样的数组: var fieldArray = convertToArray(formFields); function getUrlVars(url,isInt) { var hash; var myJson = {}; var hashes = ur ...
  • 如果您不需要对象绑定和错误报告等功能,则可以使用纯HTML表单而不是