【发布时间】:2014-01-15 12:30:05
【问题描述】:
我正在使用 Spring MVC 3.4.0。 当我尝试 CRUD 示例时,我在浏览器控制台中收到此错误;
HTTP 状态 400 - 客户端发送的请求在语法上是 不正确。
我的代码:
EditBlog.jsp;
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ page contentType="text/html; charset=UTF-8" language="java"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<form action="/testhibernate/edit/${blogID}/" method="POST" name="BLOG">
<h3>TITLE</h3>
<input name="TITLE" type="text" value="${blogList.title}" size="30"/>
<h3>CREATE_DATE</h3>
<input name="CREATE_DATE" type="date" value="${blogList.createDate}" size="30"/>
<h3>TEXT_CONTENT</h3>
<input name="TEXT_CONTENT" type="text" value="${blogList.textContent}" size="30"/>
<br>
<input name="action" type="submit" value="Edit" size="30"/>
</form>
editController ;
package com.basari.testhibernate;
import java.util.Date;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.basari.blog.Blog;
import com.basari.blog.User_Blog_App;
@Controller
public class editController {
@Autowired
private User_Blog_App deneme1;
@RequestMapping(value = "/edit/{blogID}", method = RequestMethod.GET)
public ModelAndView findBlog(@PathVariable Integer blogID)
{
ModelAndView mav = new ModelAndView("editBlog");
Blog blog= deneme1.findBlog(blogID);
mav.addObject("blogList", blog);
return mav;
}
@RequestMapping(value = "/edit/{blogID}/", method = RequestMethod.POST)
public ModelAndView editBlog(@PathVariable Integer blogID
, @RequestParam( value = "TITLE", required=false) String title
, @RequestParam( value = "TEXT_CONTENT", required=false) String content
, @RequestParam( value = "CREATE_DATE", required=false) Date date
) {
Blog blog= deneme1.findBlog(blogID);
blog.setTitle( title );
blog.setTextContent( title );
blog.setCreateDate(date);
this.deneme1.editBlog( blog );
ContactController.logger.debug( "contactPost action called ");
try{
}finally{
}
ModelAndView mav = new ModelAndView("editBlog");
mav.addObject("blogList", blog);
return mav;
}
}
编辑函数 ;
public void editBlog(Blog blog){
Session session =sessionFactory.openSession();
Transaction tx= null;
try{
tx= session.beginTransaction();
session.update(blog);
tx.commit();
}
catch(HibernateException e){
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally{
session.close();
}
}
我的 JAVA 控制台没有错误。怎么了?
【问题讨论】:
-
当您在按钮
submit上或之前出现错误时?如果单击submit后出现错误,那么记录是否在数据库中更新?并请从您收到错误的地址栏中发布 url -
您为
CREATE_DATE字段输入了什么值? -
当我点击按钮时,我在这个 url 得到这个错误:localhost:8080/testhibernate/edit/4
-
我正在输入日期类型
-
这没有帮助。您在
<input>字段中输入了什么值?如果有的话,请打开浏览器的网络控制台并检查 HTTP 请求中发送的内容。
标签: spring hibernate spring-mvc mapping crud