пожалуйста, помогите мне.
Я работаю проверить форму. Поля ученика класса, такие как «имя», «адрес», «электронная почта», отображают сообщение, когда я нажимаю кнопку «Отправить», но моя проблема состоит в том, что поля, в которых ученик класса содержит отношения, поскольку основной класс не является отображаемым сообщением. Я попытался поместить аннотации @Valid, и я получил тот же результат.
Я получаю сообщение об ошибке: Не удалось преобразовать значение свойства типа java.lang.String в требуемый тип com.springmvc.entities.Major для свойства major; вложенное исключение - java.lang.IllegalStateException: невозможно преобразовать значение типа java.lang.String в требуемый тип com.springmvc.entities.Major для основного свойства: не найдено соответствующих редакторов или стратегии преобразования.
Может ли кто-нибудь помочь мне или дать мне решения? Я так благодарен!
Я искренне извиняюсь, если мой английский не хорош
@Entity(name="student")
public class Student{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
int id;
@NotNull(message="Your name must not null !")
String name;
@NotNull(message="Your address must not null !")
String address;
@NotNull(message="Your email must not null !")
String email;
@NotNull(message="Select a major !")
@Valid
@OneToOne(fetch=FetchType.EAGER)
@JoinColumn(name="idMajor")
private Major major;
//getter - setter ...
}
@Entity(name="major")
public Class Major{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
int idMajor;
String major;
//getter - setter ...
}
//My controller
@Controller
public class StudentController{
@Autowired
StudentService studentService;
@InitBinder
public void InitBinder(WebDataBinder binder){
StringTrimmerEditor stringTrimmerEditor = new StringTrimmerEditor(true);
binder.registerCustomEditor(String.class, stringTrimmerEditor);
}
@ModelAttribute("studentForm")
public Student studentForm()
{
return new Student();
}
@RequestMapping(value="/saveStudent",method= RequestMethod.POST)
public String SaveStudent(@Valid @ModelAttribute("studentForm") Student
student,BindingResult bindingResult, ModelMap model) {
if (bindingResult.hasErrors())
{
return "page-student";
}
else {
model.addAttribute("msg", "Save success!");
studentService.SaveStudent(student);
return "page-student;
}
}
}
//My View (page-student.jsp)
<form:form action="saveStudent" enctype="multipart/form-data" method="post"
modelAttribute="studentForm" >
<p>Name:<form:input path="name"/></p>
<form:errors path="name" cssClass="error" /> // Validate ok !
<p>Address:<form:input path="address"/></p>
<form:errors path="address" cssClass="error" /> // Validate ok !
<p>Email:<form:input path="email"/></p>
<form:errors path="email" cssClass="error" /> // Validate ok !
<p>Major:<form:select path="major">
<form:option value="0">-- Select --</form:option>
<c:forEach var="major" items="${major}">
<form:option value="${major.getIdMajor()}">
${major.getMajor()}
</form:option>
</c:forEach>
</form:select></p>
<form:errors path="major" cssClass="error" />
// I get an errors as I mentioned in my description above.
<form:button type="submit" >Submit</form:button>
</form:form>