سؤال

وداخل لforeach متداخلة، والوصول إلى نفس المتغير يعود قيم مختلفة. هذا يحدث عندما تكون الصفحة إعادة تحميل، وليس على الحمل الأول.

<ui:composition
  xmlns="http://www.w3.org/1999/xhtml"
  (...)
  xmlns:c="http://java.sun.com/jstl/core"
  xmlns:h="http://java.sun.com/jsf/html">

  (...)

  <c:forEach items="#{controller.availableTransitions}" var="transition">
    <c:forEach items="#{transition.availableTransitions}" var="transitionItem">
      <h:outputText value="1_#{transitionItem.name} 2_#{transitionItem.name}" />
      3_#{transitionItem.name} 4_#{transitionItem.name}
    </c:forEach>
  </c:forEach>
</ui:composition>

وبعد إعادة تحميل الصفحة، transitionItem.Name إرجاع القيمة الصحيحة لمدة 3 و 4، وقيم مختلفة ل1 و 2. ربما مشكلة التكامل JSF-JSTL؟

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

المحلول 3

وجدت حلا، من خلال التخلص من حلقة foreach الداخلية، وبالتالي العودة قائمة خطية من وحدة تحكم.

نصائح أخرى

وأرى أنك تستخدم Facelets.

وربما يمكنك محاولة استبدال <c:forEach> عن طريق <ui:repeat> ...

والرمز وبعد ذلك تصبح:

<ui:composition
  xmlns="http://www.w3.org/1999/xhtml"
  (...)
  xmlns:c="http://java.sun.com/jstl/core"
  xmlns:h="http://java.sun.com/jsf/html">

  (...)

  <ui:repeat value="#{controller.availableTransitions}" var="transition">
    <ui:repeat value="#{transition.availableTransitions}" var="transitionItem">
      <h:outputText value="1_#{transitionItem.name} 2_#{transitionItem.name}" />
      3_#{transitionItem.name} 4_#{transitionItem.name}
    </ui:repeat>
  </ui:repeat>
</ui:composition>

في عام، وأنا أحاول أن استخدام واجهة المستخدم: تكرار معظم الوقت. عندما كنت أعاني ج: قضايا محددة، لقد وجدت هذا بلوق، الذي كان مفيدا للغاية ويمكن أن تطبق في قضيتك أيضا

.

http://www.ilikespam.com / بلوق / ج: foreach-مقابل-واجهة المستخدم: تكرار في وfacelets

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