起初有没有鉴定被命名为骆驼案件和下划线一些bean属性的问题。所以我删除了这些并重新生成了实体类。尽管现在已解决该问题,但在提交以下表单时,它会提供HTTP状态400错误“客户端发送的请求在语法上不正确”。虽然也有类似的问题,我找不到我的答案。Errror提交客户端发送一个表单请求是语法不正确的弹簧DAO
JSP页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form:form action="addDistrict" method="POST" modelAttribute="district">
<form:select class="form-control" style="border-radius: 0px" placeholder="ADA Zone" path="adaid">
<c:forEach items="${adas}" var="result">
<form:option value="${result.adaid}">${result.adaname}</form:option>
</c:forEach>
</form:select>
<form:input path="districtid" type="hidden"></form:input>
<form:input path="districtname" placeholder="District Name:"></form:input>
<button type="submit" class="btn btn-app"><i class="material-icons md-18" style="font-size:1.0em;">mode_edit</i></button>
</form:form>
</body>
</html>
控制器
package edu.cdms.project.dao.impl;
import edu.cdms.project.dao.BranchDAO;
import edu.cdms.project.orm.Adazone;
import edu.cdms.project.orm.Ascenter;
import edu.cdms.project.orm.District;
import edu.cdms.project.orm.Ds;
import java.util.ArrayList;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class BranchDAOImpl implements BranchDAO{
@Autowired
private SessionFactory sessionFactory;
public Session getSession(){
return sessionFactory.openSession();
}
public ArrayList<Adazone> getADAList(){
Session session=getSession();
session.beginTransaction();
Query namedQuery=session.getNamedQuery("Adazone.findAll");
ArrayList<Adazone> adaZones=(ArrayList<Adazone>) namedQuery.list();
session.getTransaction().commit();
session.close();
return adaZones;
}
public boolean addDistrict(District district) {
Session session=getSession();
session.beginTransaction();
session.save(district);
session.getTransaction().commit();
session.close();
return false;
}
}
服务
package edu.cdms.project.service;
import edu.cdms.project.orm.Adazone;
import edu.cdms.project.orm.Ascenter;
import edu.cdms.project.orm.District;
import edu.cdms.project.orm.Ds;
import java.util.ArrayList;
public interface BranchService {
public ArrayList<Adazone> getADAList();
public boolean addDistrict(District district);
}
实现的服务
package edu.cdms.project.service.impl;
import edu.cdms.project.dao.BranchDAO;
import edu.cdms.project.orm.Adazone;
import edu.cdms.project.orm.Ascenter;
import edu.cdms.project.orm.District;
import edu.cdms.project.orm.Ds;
import edu.cdms.project.service.BranchService;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class BranchServiceImpl implements BranchService{
@Autowired
private BranchDAO branchDAO;
public ArrayList<Adazone> getADAList() {
return branchDAO.getADAList();
}
public boolean addDistrict(District district){
return branchDAO.addDistrict(district);
}
}
DAO
package edu.cdms.project.dao;
import edu.cdms.project.orm.Adazone;
import edu.cdms.project.orm.Ascenter;
import edu.cdms.project.orm.District;
import edu.cdms.project.orm.Ds;
import java.util.ArrayList;
public interface BranchDAO {
public ArrayList<Adazone> getADAList();
public boolean addDistrict(District district);
}
实施DAO
package edu.cdms.project.contrl;
import edu.cdms.project.orm.Adazone;
import edu.cdms.project.orm.Ailist;
import edu.cdms.project.orm.Ascenter;
import edu.cdms.project.orm.District;
import edu.cdms.project.orm.Ds;
import edu.cdms.project.service.BranchService;
import java.util.ArrayList;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/")
public class BranchController {
@Autowired
private BranchService branchService;
@RequestMapping(value = "/addDistrict", method = RequestMethod.POST)
public String addDistrict(@Valid District district, ModelMap map){
branchService.addDistrict(district);
ArrayList<Adazone> adaZones=branchService.getADAList();
map.addAttribute("adas", adaZones);
map.addAttribute("district", district);
return "test";
}
}
ORM Adazone.java
package edu.cdms.project.orm;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@Entity
@Table(name = "adazone")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Adazone.findAll", query = "SELECT a FROM Adazone a"),
@NamedQuery(name = "Adazone.findByAdaid", query = "SELECT a FROM Adazone a WHERE a.adaid = :adaid"),
@NamedQuery(name = "Adazone.findByAdaname", query = "SELECT a FROM Adazone a WHERE a.adaname = :adaname")})
public class Adazone implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "adaid")
private Integer adaid;
@Size(max = 50)
@Column(name = "adaname")
private String adaname;
@OneToMany(mappedBy = "adaid", fetch = FetchType.LAZY)
private List<Ailist> ailistList;
@OneToMany(mappedBy = "adaid", fetch = FetchType.LAZY)
private List<District> districtList;
public Adazone() {
}
public Adazone(Integer adaid) {
this.adaid = adaid;
}
public Integer getAdaid() {
return adaid;
}
public void setAdaid(Integer adaid) {
this.adaid = adaid;
}
public String getAdaname() {
return adaname;
}
public void setAdaname(String adaname) {
this.adaname = adaname;
}
@XmlTransient
public List<Ailist> getAilistList() {
return ailistList;
}
public void setAilistList(List<Ailist> ailistList) {
this.ailistList = ailistList;
}
@XmlTransient
public List<District> getDistrictList() {
return districtList;
}
public void setDistrictList(List<District> districtList) {
this.districtList = districtList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (adaid != null ? adaid.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Adazone)) {
return false;
}
Adazone other = (Adazone) object;
if ((this.adaid == null && other.adaid != null) || (this.adaid != null && !this.adaid.equals(other.adaid))) {
return false;
}
return true;
}
@Override
public String toString() {
return "edu.cdms.project.orm.Adazone[ adaid=" + adaid + " ]";
}
}
District.java
package edu.cdms.project.orm;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@Entity
@Table(name = "district")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "District.findAll", query = "SELECT d FROM District d"),
@NamedQuery(name = "District.findByDistrictid", query = "SELECT d FROM District d WHERE d.districtid = :districtid"),
@NamedQuery(name = "District.findByDistrictname", query = "SELECT d FROM District d WHERE d.districtname = :districtname")})
public class District implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "districtid")
private Integer districtid;
@Size(max = 50)
@Column(name = "districtname")
private String districtname;
@OneToMany(mappedBy = "districtid", fetch = FetchType.LAZY)
private List<Ailist> ailistList;
@OneToMany(mappedBy = "districtid", fetch = FetchType.LAZY)
private List<Ds> dsList;
@JoinColumn(name = "adaid", referencedColumnName = "adaid")
@ManyToOne(fetch = FetchType.LAZY)
private Adazone adaid;
public District() {
}
public District(Integer districtid) {
this.districtid = districtid;
}
public Integer getDistrictid() {
return districtid;
}
public void setDistrictid(Integer districtid) {
this.districtid = districtid;
}
public String getDistrictname() {
return districtname;
}
public void setDistrictname(String districtname) {
this.districtname = districtname;
}
@XmlTransient
public List<Ailist> getAilistList() {
return ailistList;
}
public void setAilistList(List<Ailist> ailistList) {
this.ailistList = ailistList;
}
@XmlTransient
public List<Ds> getDsList() {
return dsList;
}
public void setDsList(List<Ds> dsList) {
this.dsList = dsList;
}
public Adazone getAdaid() {
return adaid;
}
public void setAdaid(Adazone adaid) {
this.adaid = adaid;
}
@Override
public int hashCode() {
int hash = 0;
hash += (districtid != null ? districtid.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof District)) {
return false;
}
District other = (District) object;
if ((this.districtid == null && other.districtid != null) || (this.districtid != null && !this.districtid.equals(other.districtid))) {
return false;
}
return true;
}
@Override
public String toString() {
return "edu.cdms.project.orm.District[ districtid=" + districtid + " ]";
}
}