السلام عليكم اخواني
أرجو مساعدتكم لي في هذه الجزئية الصغيرة حيص قمت بكتابة كود في نموذج من عناصر وحقول مختلفة كي يقوم المستخدم بملئها واستخدامها مع الـ JSF
الأمر الوحيد الذي عجزت فيه عن الحثول على النتيجة الصحيحة هو مع الـ Checkbox حيث لدى اختيار احدى الخيارات ومحاولة اظهارها لا تظهر انما تظهر سلسلة نصية من رموز غريبة مثل [Ljava.lang.String;@3fcae63b
الكود بسيط وهو كالتالي:
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import java.util.Arrays;
@ManagedBean(name="emp") //or @Named("emp")
@RequestScoped
@SessionScoped
public class Person implements Serializable{
private String [] language;
public String[] getLanguage() {
return language;
}
public void setLanguage(String[] language) {
this.language = language;
}
}
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>/Languages</title>
</h:head>
<h:body>
<h1>Languages!</h1><br/>
<h:form>
Languages
<h:selectManyCheckbox value="#{emp.language}">
<f:selectItem itemValue="Arabic" itemLabel="Arabic" />
<f:selectItem itemValue="English" itemLabel="English" />
<f:selectItem itemValue="French" itemLabel="French" />
<f:selectItem itemValue="German" itemLabel="German" />
</h:selectManyCheckbox>
<h:commandButton value="submit" action="DisplayInfo"/><br/>
</h:form>
</h:body>
</html>
وفي النهاية كود الـ DisplayInfo لاظهار النتيجة
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Informaion</title>
</h:head>
<h:body>
<h1>Information!</h1><br/>
Languages: #{emp.language}<br/>
</h:body>
</html>
صراحة حاولت أن اعمل استدعاء الدالة toString في ملف الـ Bean من أجل المصفوقة language على الشكل التالي
public String[] toString(){
return getLanguage();
}لكنني احصل على خطأ لانه غير ممكن عمل override لهذه الدالة من اجل مصفوفة
المهم صراحة بحثث في الانترنت وكانت الحلول معقدة وغير واضحة ولم افهمها ولم أجد ما يشفي غليلي
حيث باعتقادي انه ينقصني خطوة بسيطة لاظهار النتائح
أرجو من لديه فكرة او حل المساعدة
وشكرا