هل يجب أن أستخدم JSTL في صفحات JSF 2 XHTML؟
سؤال
أرغب في ربط حقل 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 تلقائيًا على قيام القيم بالرقم (والطغل) من/إلى سلسلة.
لا تنتمي إلى StackOverflow