Ich muss diese geschäftlichen Anforderungen zu lösen, aber ich bin etwas unerwünschtes Verhalten und ich brauche die Hilfe der Experten. Ich JSF mit 2.2.13, Gesichter Prime 5.3mehrere verwaltete Eigenschaften der gleichen Bean, in der gleichen Klasse
ich eine UserBean ähnliche ähnliche
@ManagedBean(name = "countryBean")
@RequestScoped
public class CountryBean implements Serializable{
private Long id;
private String isoCode;
private String phoneCode;
...
...getter/setter
Das Problem
@ManagedBean(name = "userBean")
@RequestScoped
public class UserBean implements Serializable {
private Long id;
private String firstName;
private String lastName;
@ManagedProperty(value = "#{countryBean}")
private CountryBean phoneCode1;
private String phoneNumber1;
@ManagedProperty(value = "#{countryBean}")
private CountryBean phoneCode2;
private String phoneNumber2;
...
...getter/setter
und CountryBean haben (wie Sie wahrscheinlich bereits wissen,) ist das innerhalb der UserBean haben wir mehr als 1 Feld (phoneCode1, phoneCode2) der gleichen verwalteten Eigenschaft (countryBean).
Das seltsame Verhalten ist, dass in der Datenbank (MySQL), meine Anwendung den gleichen Wert für alle diese Felder (phoneCode1, phoneCode2) speichern, auch wenn wir im Front-End verschiedene Werte auswählen.
Im Frontend habe ich dieses Stück Code
<h:selectOneMenu value="#{userController.userBean.phoneCode1.id}" class="form-control">
<f:selectItem itemLabel="#{msg['seleziona']}" itemValue="" noSelectionOption="true" />
<f:selectItems value="#{applicationScopedBean.countries}" var="ac" itemValue="#{ac.id}" itemLabel="#{ac.phoneCode}"/>
</h:selectOneMenu>
<h:selectOneMenu value="#{userController.userBean.phoneCode2.id}" class="form-control">
<f:selectItem itemLabel="#{msg['seleziona']}" itemValue="" noSelectionOption="true" />
<f:selectItems value="#{applicationScopedBean.countries}" var="ac" itemValue="#{ac.id}" itemLabel="#{ac.phoneCode}"/>
</h:selectOneMenu>
Also, auf welche Weise wir diese Geschäftsanforderungen lösen können?
Ich habe ähnliche Fragen gesehen, aber ich verstehe nicht, wenn ich nicht sehr gut JSF verwende, oder wenn es eine JSF-Beschränkung ist. Aus der Sicht einer Datenbank es ähnlich ist zu fragen: „In welcher Art und Weise kann ich eine Tabelle erstellen, genannt‚‘mit einigen FK in die Tabelle verknüpft‚B‘A?
Thank you!
Gibt es einen bestimmten Grund, warum Ihre CountryBean eine Bohne und eine verwaltete Eigenschaft ist? Ich lerne immer noch selbst, aber ich glaube nicht, dass du sie anders als eine Schnur behandeln musst. – klog
Land ist ein db Lookup-Tabelle und ich brauche die ID und den Namen – Gavi
Ich nicht unterbewerten, warum UserBean und CountryBean sind JSF ManagedBean, .. Sie sind nur einfache Datenstrukturen –