Какая польза от & ldquo; assert & rdquo; в питоне?

Наиболее простой способ - . Включенный контент должен быть помещен внутри .

Пример Kickoff главной страницы /page.xhtml:



    
        Include demo
    
    
        

Master page

Master page blah blah lorem ipsum

Страница включения /WEB-INF/include.xhtml (да, это файл целиком, любые теги вне не нужны, поскольку в любом случае они игнорируются Facelets):


    

Include page

Include page blah blah lorem ipsum

Это нужно открыть /page.xhtml. Обратите внимание, что вам не нужно повторять , и внутри включенного файла, что в противном случае приводило бы к недопустимому HTML .

Вы можете используйте динамическое выражение EL в . См. Также . Как обновить динамику ajax, включив контент в меню навигации? (JSF SPA) .


/

Более сложным способом включения является templating . Это включает в себя в основном наоборот. Страница главного шаблона должна использовать , чтобы объявить места для вставки определенного содержимого шаблона. Страница шаблона клиента, использующая страницу главного шаблона, должна использовать для определения содержимого шаблона, который должен быть вставлен.

Страница главного шаблона /WEB-INF/template.xhtml (как подсказка дизайна: заголовок, меню и нижний колонтитул могут, в свою очередь, быть файлами):



    
        <ui:insert name="title">Default title</ui:insert>
    
    
        
        
        
Default content

Страница клиента шаблона /page.xhtml (обратите внимание на атрибут template, также здесь это файл целиком):



    
        New page title here
    

    
        

New content here

Blah blah

Это нужно открыть /page.xhtml. Если нет , тогда вместо него будет отображаться содержимое по умолчанию внутри , если оно есть.


Вы можете передать параметры на или на .


    


    
    ...

Внутри файла include / template он будет доступен как #{foo}. Если вам нужно передать «много» параметров в , вам лучше рассмотреть регистрацию файла include как файла тега, чтобы вы могли в конечном итоге использовать его так . См. Также . Когда использовать & lt; ui: include & gt ;, файлы тегов, составные компоненты и / или настраиваемые компоненты?

Вы можете даже передать целые бобы, методы и параметры с помощью . См. Также JSF 2: как передать действие, включающее аргумент, вызываемый в под-просмотр Facelets (с использованием ui: include и ui: param)?


Design hints

Файлы, которые не должны быть общедоступными, просто вводя / угадывая его URL-адрес, должны быть помещены в папку /WEB-INF, например, как файл include и файл шаблона в приведенном выше примере. См. Также Какие файлы XHTML мне нужно вставить / WEB-INF, а какие нет?

За пределами не должно быть никакой разметки (HTML-код) и . Вы можете поместить их, но они будут проигнорированы Facelets. Внесение разметки в нее полезно только для веб-дизайнеров. См. Также . Есть ли способ запустить страницу JSF без создания всего проекта?

В наши дни доктриком HTML5 является рекомендуемый тип доктрины, «несмотря на то, что это XHTML файл. Вы должны увидеть XHTML как язык, который позволяет вам создавать HTML-выход, используя инструмент на основе XML. См. Также Возможно ли использовать JSF + Facelets с поддержкой HTML 4/5? и JavaServer Faces 2.2 и HTML5, почему XHTML все еще используется .

Файлы CSS / JS / image могут быть включены в качестве динамически перемещаемых / локализованных / версий. См. Также Как ссылаться на ресурс CSS / JS / image в шаблоне Facelets?

Вы можете поместить файлы Facelets в многоразовый JAR-файл. См. Также Структура для нескольких проектов JSF с общим кодом .

Для примеров реального времени расширенного шаблона Facelets проверьте папку src/main/webapp в исходном коде Java EE Kickoff и исходный код сайта сайта OmniFaces .

807
задан APerson 3 December 2014 в 03:13
поделиться