当我在jsp表单上添加日期字段时,我会得到这个错误,但没有它,它可以正常工作。
请求
http://localhost:8080/myTasks/docreatetask?task=hi+there&description=stucked+here&date=2014-02-21&idTaskCategory=1&idTaskPriority=1&idTaskState=1&pending=1&idUser=0&idUser_responsible=0&evaluation=aaaaaa
部分Form.jsp
<form method="GET"
action="${pageContext.request.contextPath}/docreatetask">
<table>
<tr>
<td>Task</td>
<td><input name="task" type="text" /></td>
</tr>
<tr>
<td>Description</td>
<td><textarea name="description"></textarea></td>
</tr>
<tr>
<td>Date</td>
<td><input name="date" type="date"/></td>
</tr>
部分Task.java组件
@Component("task")
public class Task {
private long id;
private String task;
private String description;
private Date date;
private Date deadline;
private Category category;
private Priority priority;
private State state;
private User user;
private User userResponsible;
private String evaluation;
private Date timestamp;
private int pending;
部分任务控制器
@RequestMapping("/createtask")
public String createTask(Model model) {
List<Category> categories = taskService.getCategories();
List<Priority> priorities = taskService.getPriorities();
List<State> states = taskService.getStates();
List<User> users = taskService.getUsers();
model.addAttribute("categories",categories);
model.addAttribute("priorities",priorities);
model.addAttribute("states",states);
model.addAttribute("users",users);
return "createtask";
}
@RequestMapping(value="/docreatetask", method=RequestMethod.GET)
public String doCreateTask(Model model, Task task) {
System.out.println(">TaskController doCreateTask " + task);
return "taskcreated";
}
知道这会是什么吗?
提前道谢!
关于错误的新的额外信息我添加了一些验证注释,并获得了关于错误的新信息。
对象“task”中字段“date”出现字段错误:拒绝值[01/01/2001];代码[typeMismatch.task.date,typeMismatch.date,typeMismatch.java.util.date,typeMismatch];参数[org.springframework.context.support.defaultmessageSourceResolvable:代码[task.date,date];参数[];default message[date]];默认消息[无法将“java.lang.String”类型的属性值转换为属性“date”所需的类型“java.util.date”;嵌套异常为org.springframework.core.convert.ConversionFailedException:无法将值“01/01/2001”从java.lang.String类型转换为@org.springframework.format.annotation.DateTimeFormat java.util.date;嵌套异常为java.lang.IllegalArgumentException:无法分析“01/01/2001”]
很久以前我也面临过这个问题。
我用以下方法解决了这个问题:
@InitBinder
protected void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
binder.registerCustomEditor(Date.class, new CustomDateEditor(
dateFormat, false));
}
有两个问题:
>
1参数(idTaskCategory、idTaskPriority、idXXX)与任务
字段不匹配。(这不是问题的原因,但它不会起作用。当您更改名称以使它们匹配时,问题是您的请求包含ID,但您的task
期望对象。因此您需要使任务也期望ID,或者需要注册某个转换器)
2(我认为这就是问题所在),我预计日期格式/转换器不接受提交的日期格式。将@datetimeformat(pattern=“yyyy-mm-dd”)
添加到所有日期字段。
<罢工> 我认为一个问题可能是您使用http方法 获取
。GET请求通过使用URL查询字符串(在 ?
)。但URL的总长度受到浏览器、查奇和Web服务器的技术限制。因此,问题的一个原因可能是,如果您有很多参数或“long”值(例如,长描述),则URL会变长。 (这是正确的,但不是原因)
所以我建议改用http方法post
。--使用post
更适合用于更改服务器上的内容的请求(http://www.w3.org/protocols/rfc2616/rfc2616-sec9.html)。
这里是LocationSearchMetaData.java 我的控制器 我的客户要求是这样的 下面是实际数据请求 获取时出错I:
控制器类(即ApplicationControllerClass)如下所示 Pojo类(即FormExample.java)如下所示
这是我的控制器 我的豆子是 当我给出的名称介于5到45个字符之间时,表单将被验证。但当表单未被验证时,我会收到400状态错误报告。我不知道为什么我会出错。这里需要帮助吗
我在这个问题上花了很多时间,但无法解决它。请帮忙!当我从JSP提交表单时,我得到了这个错误。我的代码: 和我的控制器代码: }
我有一个表单,用户可以使用它将文件上传到本地驱动器,还可以将一些数据保存到数据库中。但是出现了这个错误消息,我想知道如何处理它。 控制器 形式本身 我试图先保存表单,我将使用单独的方法发送它。
我已经创建了一个MVC结构来为患者保存一个新的记录,我不断收到404错误。这是我的密码, 病人JAVA 控制器类 Dao实现类 调度servlet 耐心形成。jsp web.xml 我可以获取列表,但当我尝试从PatientForm保存患者详细信息时。jsp时,表单未将其提交给控制器,并给出400状态错误