سؤال

بعد القراءة هذا الجواب, ، ما زلت متعثرًا. أوافق على أنه ينبغي تجنب JSTL وفهم كيف يحدث تقييمه في المرحلة الخاطئة. ومع ذلك ، لكل توثيق على موقع تطوير الوجه ، يبدو ذلك <ui:fragment> العلامات تدعم فقط سمتين ، id و binding. لذلك ، حتى لو دعم بعض التنفيذ rendered, ، يبدو أنك ستكون مصيرًا مغريًا للاستفادة منه. كان الاقتراح الآخر هو الاستخدام <h:panelGroup>, ومع ذلك ، فإن هذا يدرج أ <div> العنصر في الاستجابة التي يمكن أن تسبب آثارًا جانبية غير مرغوب فيها (مثل تغيير المحتوى الخاص بك من مضمنة إلى حظر). لا أحد يعرف طريقة للتغلب على هذا؟ على وجه الخصوص ، أحاول ما يلي:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns:ice="http://www.icesoft.com/icefaces/component" 
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:ui="http://java.sun.com/jsf/facelets">
  <ui:composition> 
    <ice:selectOneListbox binding="#{binding}" rendered="#{modeExisting}">
      <f:selectItems
        value="#{binding.allTagsSelectItems}" />
    </ice:selectOneListbox>
    <ice:inputText binding="#{binding.name}" />
    <ice:inputText binding="#{binding.description}" />
  </ui:composition> 
</html>

وهو في الأساس عبارة عن صندوق مستخدم لتحديد عنصر يحمل اسمًا ووصفًا عند تحديده ، سيسمح للمستخدم بتحريرها. يمكنني وضع <ice:panelGroup> حول الكتلة ، واستخدم السمة المقدمة منه ، ولكن مرة أخرى ، يمكن أن تكون هناك آثار جانبية لحقن هذا div إضافية. هل هناك أي طريقة لجعل هذا العمل؟

أيضًا ، قد يكون من الجدير بالذكر أنني أستخدم المكون المخصص أعلاه مقترنًا بهذا التغلب على الوجه:

<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC 
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" 
"http://java.sun.com/dtd/facelet-taglib_1_0.dtd"> 

<facelet-taglib>
  <namespace>http://www.mitre.org/asias/jsf</namespace>
  <tag>
    <tag-name>configurationTagEditor</tag-name>
    <source>../component/configurationTagEditor.xhtml</source>
  </tag>
  <tag>
    <tag-name>configurationTagSelector</tag-name>
    <source>../component/configurationTagSelector.xhtml</source>
  </tag>
  <tag>
    <tag-name>configurationTagRegexTable</tag-name>
    <source>../component/configurationTagRegexTable.xhtml</source>
  </tag>
</facelet-taglib>

للسماح لي باستخدام هذا في JSF XHTML الخاص بي:

...
<ice:panelTab label="Existing" styleClass="configurationTagsExisting">
  <m:configurationTagEditor tag="#{configuration.existingTag}" />
</ice:panelTab>
...
هل كانت مفيدة؟

المحلول

كان الاقتراح الآخر هو الاستخدام <h:panelGroup>, ومع ذلك ، فإن هذا يدرج أ <div> عنصر في الاستجابة

ال <h:panelGroup> لا يقدم <div> بشكل افتراضي. لا يؤدي إلا إلى ذلك إذا أضفت layout="block". لجميع سمات HTML الأخرى (مثل id, styleClass, ، إلخ) ، فهو يعرض فقط <span>. إذا كان لا layout السمة موجودة وجميع سمات HTML الأخرى غائبة ، فهي تقدم ولا شيء.

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