У меня возникли проблемы с выяснением, как работать с компонентом BeanEditForm.Видите ли, с этим все в порядке (он отображает то, что должен), пока я не использую параметризованные конструкторы для своего класса бобов (и я нуждаюсь в них).Вот как выглядит мой класс Bean:
public class Celebrity {
private String firstName;
private String lastName;
private long ID;
private Date dateOfBirth;
private Occupation occupation;
private String biography;
private boolean birthDateVerified;
public Celebrity() {
}
public Celebrity(String firstName, String lastName, Date dateOfBirth, Occupation occupation, String biography, boolean birthDateVerified) {
this.firstName = firstName;
this.lastName = lastName;
this.dateOfBirth = dateOfBirth;
this.occupation = occupation;
this.biography = biography;
this.birthDateVerified = birthDateVerified;
}
public Celebrity(String firstName, String lastName, Date dateOfBirth, Occupation occupation) {
this.firstName = firstName;
this.lastName = lastName;
this.dateOfBirth = dateOfBirth;
this.occupation = occupation;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public long getID() {
return ID;
}
public void setID(long ID) {
this.ID = ID;
}
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public Occupation getOccupation() {
return occupation;
}
public void setOccupation(Occupation occupation) {
this.occupation = occupation;
}
/**
* @return the biography
*/
public String getBiography() {
return biography;
}
public void setBiography(String biography) {
this.biography = biography;
}
public boolean getBirthDateVerified() {
return birthDateVerified;
}
public void setBirthDateVerified(boolean birthDateVerified) {
this.birthDateVerified = birthDateVerified;
}
}
Это мой шаблон гобелена: AddNewCelebrity.tml
<html t:type="layout" title="Celebrity Details"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
xmlns:p="tapestry:parameter">
<head>
<Title>Adding new celebrety</Title>
</head>
<body>
<t:beaneditform t:id="celebrity"/>
</body>
</html>
И его класс Java:
public class AddNewCelebrity {
@Persist
private Celebrity celebrity;
public Celebrity getCelebrity() {
return celebrity;
}
public void setCelebrity(Celebrity celeb) {
this.celebrity = celeb;
}
}
Это ошибка, которую я получаю из гобелена, когда я не комментирую мои параметризованные конструкторы:
Ошибка рендеринга в очереди в SetupRender [AddNewCelebrity: celebrity.editor]: Экземпляр исключительной ситуации com.celebreties.celebs.model.Celebrity (для компонента «AddNewCelebrity: celebrity.editor»): ошибка при вызове конструктора com.celebreties.celebs.model.Celebrity (строка, строка, дата, профессия, строка, логическое значение) (в Celebrity.java:29) (для сервиса 'BeanModelSource'): ни один сервис не реализует интерфейс java.lang.String.
Я использую гобелен 5.2.4 с Tomcat 6.0.32
Пожалуйста, дайте некоторые рекомендациичто я могу сделать.