سؤال

أرغب في ربط حقل Backing Bean بالقيمة المحددة لـ SelectOnelistBox. قد تكون هذه القيمة لاغية ، لذلك أريد تحويل هذا إلى 0. سيقوم هذا بتعيين القيمة المحددة على SelectItem "الافتراضي". أنا استخدم JSF2

أخطط للقيام بذلك مع http://java.sun.com/jstl/core تاجليب (باستخدام <c:if test="#{empty...}>)

سؤالي هو: هل هناك طريقة "أنظف" للقيام بذلك. ربما JSF (2) taglib ذات الصلة؟

شكرًا لك!

هل كانت مفيدة؟

المحلول

طريقة "JSfish" للقيام بذلك هي إنشاء محول:

public Object getAsObject(FacesContext context, UIComponent comp, String param) {
    return (param.equals("0")) ? null : param;
}

public String getAsString(FacesContext context, UIComponent comp, Object obj) {
    return (obj == null) ? "0" : obj.toString();
}

نصائح أخرى

فقط استخدم Long أو Integer بدلاً من String كقيمة عنصر. ستعمل EL تلقائيًا على قيام القيم بالرقم (والطغل) من/إلى سلسلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top