بتاريخ: 24 أغسطس 201114 سنة comment_215294 السلام عليكم ورحمة الله وبركاته الاخوة خبراءADfمتي احتاج ان اختار انشاءBeanللصفحةعند الانشاء وفي حالة لم اقوم باخيار انشاء الbeanهل يمكن عمله بعد انشاء الصفحة ؟وكيف يمككني انشائه في هذه الحالة ؟وشكرا تقديم بلاغ
بتاريخ: 24 أغسطس 201114 سنة comment_215306 القاعدة بسيطة جداً ، عندما تحتاج أن تكتب أي كود ينفذ business معين في الصفحة فيتم كتابته في الـ bean.عادة كل صفحة سيكون معها bean لأنه من النادر أن نجد صفحة لا تحتاج إلى كود. قد تكون هذه الحالة موجودة في الشاشات البسيطة مثل شاشات الـ lookup خاصة أن ADF تقريباً يقوم بكل شئ فيها دون كتابة كود تقريباًإذا أردت صفحة بالـ bean بعد إنشائها فقم بفتح الصفحة في Design Mode ثم افتح القائمة Design ثم Page Properties. افتح الـ Tab باسم Component Binding ثم اختر Auto Bind وبعدها إما أن تختار واحدة من الـ beans الموجودة أو تقوم بإنشاء bean جديدة تقديم بلاغ
بتاريخ: 24 أغسطس 201114 سنة كاتب الموضوع comment_215309 شكرا علي الردوجزاك الله خيرا كثيراورزقك الجنة ووالديك وكنت احب ان اسالك سؤال اخرما هو المقابلwhen_button_pressedالموجود في الفورم بلديرفيADF تم تعديل 24 أغسطس 201114 سنة بواسطة samirtarek تقديم بلاغ
بتاريخ: 24 أغسطس 201114 سنة comment_215315 في أداة af:commandButton تجد خاصية action وهي المناظرة لـ when_button_pressed تقديم بلاغ
بتاريخ: 24 أغسطس 201114 سنة كاتب الموضوع comment_215316 لقد قمت باستخدامها ولكنها لا تعمل ولا تخرج الرسالة التي اريدها ان تظهر تم تعديل 24 أغسطس 201114 سنة بواسطة samirtarek تقديم بلاغ
بتاريخ: 24 أغسطس 201114 سنة كاتب الموضوع comment_215321 public String cb6_action() { // Add event code here... if (it1=="10") { FacesMessage message = new FacesMessage(" The Department is :10 "); FacesContext.getCurrentInstance().addMessage(null, message); it4.VALUES_MAP.values()="10"; //it4.VALUES="10"; } else //if (it1!=10) return null ; } تقديم بلاغ
بتاريخ: 24 أغسطس 201114 سنة comment_215327 قم بتوضيح تعريف المتغير it1 حتى أعرف نوعه بالضبط تقديم بلاغ
بتاريخ: 25 أغسطس 201114 سنة كاتب الموضوع comment_215334 الit1هو ال idبتاع الحقل الخاص بكود القسمDeptno تقديم بلاغ
بتاريخ: 25 أغسطس 201114 سنة كاتب الموضوع comment_215335 لقد قمت بعمل هذا الكود بناء علي المساعدة منك في المشاركة الاخري ولكنه لا يعمل public String cb6_action() { // Add event code here... BindingContainer bc = BindingContext.getCurrent().getCurrentBindingsEntry(); DCBindingContainer dcbc = (DCBindingContainer)bc; String deptId = (String)dcbc.findIteratorBinding("DeptView1Iterator").getCurrentRow().getAttribute("Deptno"); FacesContext context = FacesContext.getCurrentInstance(); FacesMessage message = new FacesMessage("deptId = " + deptId); context.addMessage(null, message); return null; } وتظهر هذه الرسالة Error 500--Internal Server Error <pre>javax.faces.el.EvaluationException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:51) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)</pre> تقديم بلاغ
بتاريخ: 25 أغسطس 201114 سنة comment_215336 هذا معناه أن deptId ليس String وإنما Integerفيجب أن يكون السطر كالتاليInteger deptId = (Integer)dcbc.findIteratorBinding("DeptView1Iterator").getCurrentRow().getAttribute("Deptno"); تقديم بلاغ
بتاريخ: 25 أغسطس 201114 سنة كاتب الموضوع comment_215337 هلpublic String cb6_action()هذه صحيحةوكذلكreturn null;ام لابد ان يكونreturn ;شيء اخروشكرا جزيلا علي الرد تقديم بلاغ
بتاريخ: 25 أغسطس 201114 سنة كاتب الموضوع comment_215339 شيء اخر لقد قمت بعمل public boolean IsCallUpDateRequired(){ BindingContainer bc = (BindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry(); DCBindingContainer dcbc = (DCBindingContainer)bc; String POC = (String)dcbc.findIteratorBinding("PtrsSec1TransmittalView1Iterator").getCurrentRow().getAttribute("Sec1StatusPoc"); if (POC=="P"){ return true; } return false; }ولكنها لا تظهر في الاكسبريشن بلديرExpression Builderلاختيارها تقديم بلاغ
بتاريخ: 25 أغسطس 201114 سنة كاتب الموضوع comment_215340 ظهرت الرسالة اخيرا وشكرا جزيلاولكن حتي الان لا اعرف لماذا لا تظهر اسمpublic boolean IsCallUpDateRequired(){فيExpression Builderهل يوجد اي متطلبات لذلك تقديم بلاغ
بتاريخ: 25 أغسطس 201114 سنة comment_215341 لأنك كتبت أول حرف capital في حين أنه يجب أن يكون small كالتالي isCallUpDateRequired تقديم بلاغ
بتاريخ: 25 أغسطس 201114 سنة كاتب الموضوع comment_215342 شكرا جزيلا علي الردوجزاك الله خيرا كثيرا ورزقك الجنة و والديك تقديم بلاغ
بتاريخ: 27 أغسطس 201114 سنة كاتب الموضوع comment_215384 لقد فمت بعمل هذه الدالة لعمل الحقلCallUpDaterequierdلكنها لا تعمل بشكل صحيحوبالتالي وضعت رسالة حتي اعرف قيمة المتغيرولكن الرسالة تظهر 4 مرات والقيمة الاول ربما تكون مختلفة في الثلاثة الاخري في حالة تغير القيمة من اليستحيث قيمة اليست("P","O","C")ودائما تدخل داخل الifسواء كانت القيمةpاو غير ذلك كان الشرط غير صحيحاو القيمةpocغير صحيحةولكن الرسالة توضح قيمة المتغير صحيحة public boolean isCallUpDateRequired(){ BindingContainer bc = (BindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry(); DCBindingContainer dcbc = (DCBindingContainer)bc; String poc = (String)dcbc.findIteratorBinding("PtrsSec1TransmittalView1Iterator").getCurrentRow().getAttribute("Sec1StatusPoc"); if (poc!="P"){ FacesContext context = FacesContext.getCurrentInstance(); FacesMessage message = new FacesMessage("deptId = " + poc); context.addMessage(null, message); return false; } return true; } تقديم بلاغ
بتاريخ: 27 أغسطس 201114 سنة comment_215390 شوف بالنسبه للطريقه بتاعتك دى فالميثود حتبقى كالاتى public boolean isrequired() { BindingContainer bc = (BindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry(); DCBindingContainer dcbc = (DCBindingContainer)bc; String poc = (String)dcbc.findIteratorBinding("StudentsView1Iterator").getCurrentRow().getAttribute("Gender"); if (poc.equals("p")) return true; else return false;} وطبعا حتخللى ال Select One Choice ال AutoSubmit الخاص بها ب True وال Partial Trigger لل required Input Text هو ال Id الخاص بال Select One Choice ولا تنسى تغيير اسم ال Iterator وال Attribute للقيم اللى عندك وطبعا الحل ده عن طريق عمل ميثود boolean فى ال required حيخللى ال Validation Fired حتى مع تغيير قيمه ال Select one choice (يعنى لازم تدخل قيمه فى الاول قبل تغيير قيمه ال Select ) والحل الافضل طبعا هو عمل ميثود فى ال Value Change Listener تقديم بلاغ
بتاريخ: 27 أغسطس 201114 سنة comment_215396 مقارنة النصوص في الجافا تكون عن طريق الدالة equals إذا كانت حالة الأحرف مهمة ، وعن طريق الدالة equalsIgnoreCase إذا لم تكن حالة الأحرف مهمة.لا تستخدم == و != لمقارنة النصوص تقديم بلاغ
بتاريخ: 28 أغسطس 201114 سنة كاتب الموضوع comment_215401 شكرا جزيلا علي الردوجزاكم الله خيرا كثيرا ورزقكم الجنة بس Value Change Listenerعلي اي حقل هل هو علي الليست ام علي الحقلrequierd تقديم بلاغ
بتاريخ: 28 أغسطس 201114 سنة كاتب الموضوع comment_215410 ولو يوجد مثال لذلك نكون شاكرينبحيث عندما تتغير القيمة يصبح حقلrequiredوالاخر قيمتهnull تقديم بلاغ
بتاريخ: 28 أغسطس 201114 سنة comment_215419 شوف حفترض انك منزل الاتريبوت فى الصفحه ك ADF Select One choice ومختار fixed list ال Value Change Listener حتبقى كالتالى public void StatusChanged(ValueChangeEvent valueChangeEvent) { if (valueChangeEvent.getNewValue().equals("p")) { this.getT1().setRequired(true); } else { this.getT1().setRequired(false); } AdfFacesContext.getCurrentInstance().addPartialTarget(this.getT1()); } طبعا t1 هو عباره عن RichInputText ومعموله set and Get فى الكلاس (ده اللى القيمه حتبقى required ام لا حسب نتيجه ال select choice ) ومتنساش تعمله binding على ال input text اللى فى الصفحه عندك وتخللى ال autosubmit الخاصه بال select one choice ب true ومش محتاج تعمل Partail Trigger لل Input Text على ال Select One Choice لاننا عملناها برمجيا حاجه تانيه محتاج بس initial value اول ما الصفحه يتعملها render بحيث نحدد ال input Text ده حيبقى required ام لا قبل تغيير قيمه ال Select وده بيتم كالاتى حتيجى على ال input text وفى حقل ال required حتكتب كده بعد تغيير اسم الاتريبوت اللى عندك #{bindings.Gender.inputValue=='p'} تقديم بلاغ
بتاريخ: 3 سبتمبر 201114 سنة كاتب الموضوع comment_215492 شكرا جزيلا علي الردوجزاكي الله خيرا كثيرا ورزقكي الجنة و والديك /**********************************************************/ولكن يظهر هذا الخطأ<RegistrationConfigurator> <handleError> ADF_FACES-60096:حدث استثناء بالخادم أثناء تصيير جزئي لصفحة PPR, رقم 1javax.servlet.ServletException<ViewHandlerImpl> <_checkTimestamp> يتم تشغيل Apache Trinidad مع تمكين التحقق من التوقيت. ويجب عدم استخدام ذلك في بيئة إنتاج. راجع خاصية org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION في WEB-INF/web.xml<UIXEditableValue> <_isBeanValidationAvailable> A Bean Validation provider is not present, therefore bean validation is disabled<LifecycleImpl> <_handleException> ADF_FACES-60098:تلقت دورة حياة Faces استثناءات غير معالجة في المرحلة PROCESS_VALIDATIONS 3javax.faces.el.EvaluationException: java.lang.NullPointerException والكود تم كتابته كما يلي public void StatusChanged(ValueChangeEvent valueChangeEvent) { if (valueChangeEvent.getNewValue().equals("P")) { this.getId8().setRequired(true); } else { this.getId8().setRequired(false); } AdfFacesContext.getCurrentInstance().addPartialTarget(this.getId8()); }ويتم استدعائه من الخاصيةvalueChangeListenerهكذا#{backingBeanScope.FillPTRSDataForm2.StatusChanged} تقديم بلاغ
بتاريخ: 3 سبتمبر 201114 سنة كاتب الموضوع comment_215493 يبدو ان initial valueلا يعمل بشكل صحيح معيفاين بالضبط يتم وضعهوهذا هو الخطأ java.lang.NullPointerException تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.