【问题标题】:Spring Hibernate : error 400 "the request sent by client was syntactically incorrect"Spring Hibernate:错误 400“客户端发送的请求在语法上不正确”
【发布时间】:2017-06-21 05:52:15
【问题描述】:

这是我的semester.java类

    @Entity
    @Table(name = "semester")
    @NamedQueries({
        @NamedQuery(name = "Semester.findAll", query = "SELECT s FROM Semester s")})
    public class Semester implements Serializable {

        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Basic(optional = false)
        @Column(name = "id")
        private Integer id;
        @OneToMany(mappedBy = "semesterid")
        private List<Marks> marksList;
        @JoinColumn(name = "facultyid", referencedColumnName = "facultyid")
        @ManyToOne
        private Faculty facultyid;
        @JoinColumn(name = "semesterid", referencedColumnName = "semesterid")
        @ManyToOne
        private Semestername semesterid;
        @JoinColumn(name = "subjectcode", referencedColumnName = "subjectcode")
        @ManyToOne
        private Subject subjectcode;

        public Semester() {
        }

        public Semester(Integer id) {
            this.id = id;
        }

        public Integer getId() {
            return id;
        }

        public void setId(Integer id) {
            this.id = id;
        }

        public List<Marks> getMarksList() {
            return marksList;
        }

        public void setMarksList(List<Marks> marksList) {
            this.marksList = marksList;
        }

        public Faculty getFacultyid() {
            return facultyid;
        }

        public void setFacultyid(Faculty facultyid) {
            this.facultyid = facultyid;
        }

        public Semestername getSemesterid() {
            return semesterid;
        }

        public void setSemesterid(Semestername semesterid) {
            this.semesterid = semesterid;
        }

        public Subject getSubjectcode() {
            return subjectcode;
        }

        public void setSubjectcode(Subject subjectcode) {
            this.subjectcode = subjectcode;
        }       
    }

这是管理控制器

    @Controller
    public class AdminController {

        @Autowired
        AdminDao adminDao;

     @RequestMapping(value="/addsemester",method=RequestMethod.GET)
        public String addsemester(Model model){

            model.addAttribute("semesterlist", new Semester());
            return "semesterentry";
        }

         @RequestMapping(value="/addsemester",method=RequestMethod.POST)
        public String _addsemester(@ModelAttribute("semesterlist") Semester semester){

            boolean check = adminDao.insertsemester(semester);
            if(check){
                return "redirect:/addsemester";
            }
            else{
            return "dashboard";
        }
        }
    }

这是 admindaoImpl.java 类,当我插入学期 400 时遇到语法不正确的错误。

    @Repository("adminDao")
    public class AdminDaoImpl implements AdminDao {

        @Autowired
        SessionFactory sessionFactory;

    @Transactional
         public boolean insertsemester(Semester semester){
              boolean check = false;
            try {
                sessionFactory.getCurrentSession().save(semester);
            } catch (Exception e) {
            }
            if(sessionFactory.getCurrentSession().save(semester)!=null){
                check = true;
            }
            return check;
         }

    }

当我尝试将数据插入数据库时​​出现 400 错误。我再次使用数据库检查了所有 jsp 名称的值,但我遇到了这些问题。

【问题讨论】:

  • 400 与道无关。这是一个http错误。您以错误的方式调用控制器。你怎么称呼它?
  • 我还检查了这个我使用
    并在控制器中使用了上面的“/addsemester”。任何解决方案
  • 请将完整的表格添加到您的问题中。
  • 这里的属性termlist在哪里?

标签: java spring hibernate


【解决方案1】:

您必须在&lt;form:form 标签中使用modelAttribute 而不是&lt;form

<form:form method="post" modelAttribute="semesterlist" action="${pageContext.servletContext.contextPath}/addsemeste‌​r" > 
<form:label path="semesterid">Semester ID</form:label> 
<form:input path="semesterid"/>
 <!-- provide the rest of fields --> 

<input type="submit" value="add" /> <input type="reset" value="cancel"/> 
</form:form>

在控制器中:

@RequestMapping(value="/addsemester",method=RequestMethod.POST)
        public String _addsemester(@ModelAttribute("semesterlist") Semester semester){
...........
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2014-09-19
    • 2013-03-21
    相关资源
    最近更新 更多