سؤال

المشكلة التي لدي اليوم حول التعامل مع HTML في JSP المضمنة، مع JSF. إذن إليك الوضع: أستخدم JSF 1.2 من قبل IBM على RAD مع WebSphere V6.1 لدي مكون مخصص (من طبقة الشركة) لاستخدام علامات التبويب. وللحصول على رمز نظافة، أريد فقط فصل رمز JSF لكل علامة تبويب في JSP مفصولة، بهذه الطريقة، Main.jsp:

<customTag:tabComponent>
<jsp:include page="/jsp/workflow/tab1.jsp"></jsp:include>
<div align="right">
    <customTag:switchToTab title="Next" tabValue="2"></customTag:switchToTab>
</div>
</customTag:tabComponent>

و my tab1.jsp:

<!-- Taglibs declared here -->
<f:verbatim>
<div id="myDivId">
    <fieldset>
        <legend>myLegend</legend>
        <h:outputText value="#{myBean.someContent}"></h:outputText>
        <!-- HERE are a lot of JSF components, selectItems, inputText... -->
    </fieldset>
</div>
</f:verbatim>

لذلك تتم معالجة مكونات JSF، ولكن يبدو أن HTML يعالج بعد ويظهر بعد، خارج HTML الناتج عن JSF. شيء مثل

<table>
    <!-- generated content -->
</table>
<div id="myDivId">
...

على الرغم من أن الجدول يجب أن يكون داخل div. حاولت استخدام <f:verbatim> ضع علامة على طرق مختلفة، وكان الحل الوحيد هو المحيط <div> و </div> بواسطة علامات فتح وإغلاق Verbatim، وهي قذرة وتجعل WebSphere مجنونا.

لم تجد Google أي شيء مناسب، وكذلك اللاعبين الذين واجهوا بالفعل نفس المشكلة؟ هل من الممكن العثور على حل نظيف أو يجب علي تضمين كل التعليمات البرمجية داخل نفس JSP؟ شكرا لك مقدما.

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

المحلول

بادئ ذي بدء، يمكن التعرف على سلوك Legacy JSF 1.0 / 1.1. ال f:verbatim كان مطلوبا بالفعل اتخاذ نص القالب في شجرة مكون JSF. ومع ذلك، و f:verbatim غير ضروري تماما منذ معالج الرؤية الجديدة في JSF 1.2 من 2006 الذي يأخذ تلقائيا أي نص قالب في الداخل f:view في شجرة المكون. وهكذا، هل أنت هل حقا باستخدام JSF 1.2؟ WebSphere 6.1 السفن مع المكتبات المدمجة JSF 1.1 والترقية إلى 1.2 ليست سهلة مثل وضع Libs فقط /WEB-INF/lib.

بالنسبة لمشكلتك الفعلية، تحتاج إلى التفاف فقط نص القالب مع f:verbatim, وليس مكونات JSF بالملائمة. وبالتالي، يجب أن تعمل ما يلي:

<f:verbatim>
    <div id="myDivId">
        <fieldset>
            <legend>myLegend</legend>
</f:verbatim>
<h:outputText value="#{myBean.someContent}"></h:outputText>
<!-- HERE are a lot of JSF components, selectItems, inputText... -->
<f:verbatim>
        </fieldset>
    </div>
</f:verbatim>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top