الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اظهار واستدعار الـ Checkbox في الـ JSF

بدأه vector_ever في 16 أبريل 2013 · 1 رد · 813 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني

أرجو مساعدتكم لي في هذه الجزئية الصغيرة حيص قمت بكتابة كود في نموذج من عناصر وحقول مختلفة كي يقوم المستخدم بملئها واستخدامها مع الـ 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 لهذه الدالة من اجل مصفوفة

 

المهم صراحة بحثث في الانترنت وكانت الحلول معقدة وغير واضحة ولم افهمها ولم أجد ما يشفي غليلي

حيث باعتقادي انه ينقصني خطوة بسيطة لاظهار النتائح

أرجو من لديه فكرة او حل المساعدة

وشكرا

تم تعديل هذه المشاركة بواسطة vector_ever في 16 أبريل 2013 في 18:40

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#2

بعد البحث والتقصي وجدت أحد الحلول وهو في ملف الـ DisplayInfo فبدل أن نكتب

Languages: #{emp.language}

نستبدلها بالكود التالي:

Languages<ui:repeat value="#{emp.language}" var="s">		
            #{s}
         </ui:repeat>

الآن صراحة لم أفهم مقطع الكود هذا بالشكل المطلوب ولكنه يؤدي الغرض المطلوب منه مع اعتقادي بأنه هناك حل مباشر واسهل منه فيا ريت لو حد عنده فكرة أخرى يكون أفضل يشاركنا معه

وشكرا

1

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


مواضيع مشابهة