Я отредактировал свой вопрос, чтобы быть более точным, так как у меня больше времени, чтобы написать его.
У меня есть форма JSF, которая должна изменять значение различных свойств собаки:
<h:form id="submit">
<h:outputLabel value="Dog name:"/>
<h:inputText value="#{User.dog.name}" id="dogName"/>
<h:outputLabel value="Name :"/>
<h:inputSecret value="#{User.name}" id="name" />
<h:commandButton type="submit" value="Submit" />
</h:form>
Это мой управляемый боб User.java
:
(Все геттеры и сеттеры хороши и действительны, так как это конструктор бина пуст).
(Изначально свойство Dog инициализируется в методе проверки, поэтому оно имеет значение и равно not null
)
public class User {
public User() {}
String name;
Dog dog;
(...get, set, ect...)
Это другой бин, который я не установил как управляемый, так как он используется только классом User
Dog.java
:
public class Dog{
public User() {}
String dog_name;
(...)
Конечно, это простой пример для понимания вещи.
Когда я отправляю форму, свойство User.name
обновляется, но не свойство User.dog.name
.
Как можно обновить значения обоих классов Java?
После отправки формы я показываю текущие значения, только User.name
изменилось:
System.out.println (User.name); // значение изменилось после отправки формы
System.out.println (User.dog.name); // значение НЕ изменяется после отправки формы
Я не знаю, если вы понимаете мою проблему здесь, я хочу манипулировать свойствами класса Dog в моей форме JSF, хотя я не буду модифицировать боб Dog напрямую, только User.Dog
...
Кстати, face-config в порядке:
РЕДАКТИРОВАТЬ:
Я добавил для моего бина, управляемого пользователем. Хотя ничего не изменилось ...
<managed-property>
<property-name>dog</property-name>
<property-class>package.Dog</property-class>
<value>#{Dog}</value>
</managed-property>