1
객체 (Empresa
및 Ciudad
) 인 두 개의 속성을 가진 엔티티가 있습니다."선택"이 작동하지 않는 "형식"의 경로 매개 변수를 가진 객체 전달
package es.dxd.project.model;
import java.io.Serializable;
import javax.persistence.*;
/**
* The persistent class for the REPRESENTANTE database table.
*
*/
@Entity
public class Representante implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ID_REPRESENTANTE")
private long idRepresentante;
@Column(name="EMAIL")
private String email;
@Column(name="NOMBRE")
private String nombre;
@Column(name="NUM_TELEFONO")
private String numTelefono;
//bi-directional many-to-one association to Empresa
@ManyToOne
@JoinColumn(name="ID_EMPRESA")
private Empresa empresa;
//bi-directional many-to-one association to Ciudad
@ManyToOne
@JoinColumn(name="ID_SEDE")
private Ciudad ciudad;
public Representante() {
}
public long getIdRepresentante() {
return this.idRepresentante;
}
public void setIdRepresentante(long idRepresentante) {
this.idRepresentante = idRepresentante;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNumTelefono() {
return this.numTelefono;
}
public void setNumTelefono(String numTelefono) {
this.numTelefono = numTelefono;
}
public Empresa getEmpresa() {
return this.empresa;
}
public void setEmpresa(Empresa empresa) {
this.empresa = empresa;
}
public Ciudad getCiudad() {
return this.ciudad;
}
public void setCiudad(Ciudad ciudad) {
this.ciudad = ciudad;
}
}
나는 폼 내부의 선택으로 .jsp
에서 "Representante"개체를 삽입 할. 나는 그것을 아래에 보여준다.
<form:form method="post" modelAttribute="representante"
action="${pageContext.request.contextPath}/addRepresentante">
<div align="center">
<table>
<tr>
<th colspan="2" style="text-align: center;">Añadir
representante</th>
</tr>
<tr>
<form:hidden path="idRepresentante" />
<td><form:label path="nombre">Nombre:</form:label></td>
<td><form:input path="nombre" size="30" maxlength="20"></form:input></td>
</tr>
<tr>
<td><form:label path="numTelefono">Teléfono:</form:label></td>
<td><form:input path="numTelefono" size="30" maxlength="20"></form:input></td>
</tr>
<tr>
<td><form:label path="email">Email:</form:label></td>
<td><form:input path="email" size="30" maxlength="20"></form:input></td>
</tr>
<tr>
<td>Ciudad:</td>
<td><form:select path="ciudad">
<form:option value="NONE" label="Selecciona una ciudad" />
<form:options items="${listaDeCiudades}" itemLabel="nombreCiudad" />
</form:select></td>
</tr>
<tr>
<td><form:label path="empresa">Empresa:</form:label></td>
<td><form:select path="empresa">
<form:option value="NONE" label="Selecciona una empresa" />
<form:options items="${listaDeEmpresas}" itemLabel="nombre"
itemValue="idEmpresa" />
</form:select></td>
</tr>
<tr>
<td colspan="2"><input type="submit" class="blue-button"
value="Insertar" /></td>
</tr>
</table>
</div>
</form:form>
마지막으로 나는 양식이 제출 될 때 활성화되는 드라이버를 보여
@RequestMapping(value = "/addRepresentante", method = RequestMethod.POST, headers = "Accept=application/json")
public String addRepresentante(@ModelAttribute("representante") Representante representante) {
if(representante.getIdRepresentante() == 0) {
representanteService.addRepresentante(representante);
}else{
representanteService.updateRepresentante(representante);
}
return "redirect:/getAllRepresentantes";
}
문제는 내가 양식을 제출하면, controller
이 활성화되지 않는 것입니다. "클라이언트가 보낸 요구 사항이 구문 상 올바르지 않습니다"라는 오류를 반환합니다. 나는 오류가 매개 변수 "경로"와 양식을 통해 개체를 보낼 때라고 생각합니다.