2012-01-25 6 views
5

sto usando una pagina con ui: uso composizione su di esso come questoCome aggiungere diversi javascript in una pagina quando si utilizza ui: composizione

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:p="http://primefaces.prime.com.tr/ui" 
    xmlns:f="http://java.sun.com/jsf/core"> 

    <h:head> 

     <title></title> 

    </h:head> 

    <h:body> 

     <ui:composition template="./WEB-INF/templates/layout.xhtml"> 

      <ui:define name="title">#{faqAddUpdate.actionState} FAQ</ui:define> 
      <ui:define name="content"> 

       <h:form id="faqAddUpdateForm" style="border-color: #000000;width: 960px;position: absolute;left: 150px;" prependId="false"> 
       .... 
       .... 

       </h:form> 

      </ui:define> 

     </ui:composition> 

    </h:body> 
</html> 

miei layout.xhtml simile a questa

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html"> 

    <h:head> 

     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

     <script type="textext/javascript" src="ckeditor/ckeditor.js" > 
      <ui:insert name="script"></ui:insert> 
     </script> 

     <title> 
      <ui:insert name="title">Login</ui:insert> 
     </title> 

    </h:head> 
    <h:body> 
     <div id="top"> 
      <ui:insert name="top"> 
       <ui:include src="header.xhtml" id="header"/> 
      </ui:insert> 
     </div> 
     <div> 
      <div id="content"> 
       <ui:insert name="content"></ui:insert> 
      </div> 
     </div> 
     <div id="bottom" style="position: absolute;top: 675px;width: 100%" align="center"> 
      <ui:insert name="bottom"> 
       <ui:include src="footer.xhtml" id="footer"/> 
      </ui:insert> 
     </div> 
    </h:body> 
</html> 

sulla mia pagina sto usando qualcosa di simile

<h:body> 

    <ui:composition template="./WEB-INF/templates/layout.xhtml"> 
     <ui:define name="script"></ui:define> 
     <ui:define name="title">#{faqAddUpdate.actionState} FAQ</ui:define> 
     <ui:define name="content"> 
     .... 
     </ui:define> 

    </ui:composition> 

questo add javascript tag nella mia testa pagina section.Now voglio come k se voglio aggiungere un altro file .js sulla mia pagina. Dovrò definire un altro ui: inserire name = "script" nella mia pagina layout.xhtml come questa?

<script type="textext/javascript" src="js/1.js" > 
     <ui:insert name="script"></ui:insert> 
</script> 

<script type="textext/javascript" src="js/2.js" > 
     <ui:insert name="script"></ui:insert> 
</script> 

e così via. O c'è qualche trucco che definisco tag script nel mio layout.xhtml una volta e poi sulla base dell'attributo src, lo inserisco nella mia pagina ui: composizione?

Grazie

risposta

13

Non hanno a che fare questo con ui: inserti. Ovunque sia necessario aggiungere un file javascript nelle tue pagine. Basta aggiungere come questo utilizzando l'API delle risorse.

<h:outputScript library="javascript" name="1.js" target="head" /> 

Per questo creare la cartella WebContent/risorse/javascript e mettere che 1.js in javascript cartella.

+0

ya, ma sto usando ui: composizione. E se io uso questa linea nel tag di intestazione della mia pagina, allora ui: composition scartare tutti i tag al di fuori di essa. Quindi questo non funzionerà in caso di ui: composizione. L'ho fatto. Dovrò usare qualcosa di simile nella mia pagina di layout '' e poi nella mia pagina all'interno di ui: composition, userò questo script ' '. È giusto. – Basit

+7

Metti solo che '' line inside ''. – BalusC

+0

@BalusC Grazie amico, il tuo commento sopra ha appena salvato il mio pomeriggio. –

1
<h:head> 

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

    <title> 
     <ui:insert name="title">Login</ui:insert> 
    </title> 

    <ui:insert name="script"></ui:insert> 

</h:head> 

<h:body> 
    <div id="top"> 
     <ui:insert name="top"> 
      <ui:include src="header.xhtml" id="header"/> 
     </ui:insert> 
    </div> 
    <div> 
     <div id="content"> 
      <ui:insert name="content"></ui:insert> 
     </div> 
    </div> 
    <div id="bottom" style="position: absolute;top: 675px;width: 100%" align="center"> 
     <ui:insert name="bottom"> 
      <ui:include src="footer.xhtml" id="footer"/> 
     </ui:insert> 
    </div> 
</h:body> 

e poi nel vostro uso pagina di qualcosa come questo

<h:body> 
    <ui:composition template="./WEB-INF/templates/Review_Template.xhtml"> 

     <ui:define name="title">FAQ Review</ui:define> 

     <ui:define name="script"><h:outputScript library="Javascripts" name="jquery-1.7.1.js"/> </ui:define> 
     <ui:define name="script"><h:outputScript library="Javascripts" name="1.js"/> </ui:define> 
     <ui:define name="content"> 
      <h:form id="FaqGridForm" prependId="false" > 
       .... 
      </h:form> 

     </ui:define> 
    </ui:composition> 
</h:body> 

E tu cartella Javascript devono essere all'interno delle cartelle, le risorse, come indicato da Ravi nella sua risposta :)

Grazie

Problemi correlati