1
我有一個表格是這樣的:條件時FacesConverter涉及
<h:form>
Phone number:
<h:inputText id="phone_number"
value="#{dbUserManager.phoneNumber}"
validatorMessage="The phone number is invalid."
required="#{auth.value eq 'MOBILE'}"
requiredMessage="Phone number is required." />
</h:inputText>
Authentication type:
<h:selectOneMenu value="#{dbUserManager.authentication}" converter="#{authenticationTypeConverter}" binding="#{auth}">
<f:selectItems value="#{dbUserManager.authTypeList}" />
</h:selectOneMenu>
</h:form>
AuthenticationType類似於此的實體:
@Entity
public class AuthenticationType implements Serializable
{
@Id
@Basic(optional = false)
private Short id;
@Basic(optional = false)
private String description;
@Override
//...
public String toString()
{
return description;
}
最後AuthenticationTypeConverter:
@Stateless
@ManagedBean
@FacesConverter(value="authenticationTypesConverter")
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public class AuthenticationTypeConverter implements Converter
{
@PersistenceContext(unitName="pu")
private EntityManager em = null;
@Override
public Object getAsObject(FacesContext fc, UIComponent uic, String string)
{
TypedQuery<AuthenticationType> q = em.createNamedQuery(
AuthenticationType.FIND_BY_DESCRIPTION,
AuthenticationType.class);
q.setParameter("description", string);
return q.getSingleResult();
}
@Override
public String getAsString(FacesContext fc, UIComponent uic, Object o)
{
if (o == null)
{
return "";
}
return o.toString();
}
}
我試圖做的是將認證類型設置爲時將電話號碼的必填項設置爲true 「移動」。但它不像我預期的那樣。
我認爲問題在於我需要使用FacesConverter進行AuthenticationType。但我不知道如何解決它。
任何人都可以提示嗎?
感謝
感謝您的快速回復。我這樣做了,我得到了這個錯誤:event =「itemSelect」事件它不是爲這個組件定義的有效事件名稱 –
對不起,將它與另一個選擇組件混合。現在應答已更正。 –
謝謝。現在它工作。 –