2009-02-11 10 views
7

Próbuję wykonać drobną korektę w środowisku Facelets/JSF. Wiem prawie nic, jak to wszystko pasuje do siebie.Facelets: jak przekazać ui: wstaw wartość jako atrybut html?

Mam wartości zdefiniowane na różnych stronach jako „tytuł” ​​

<ui:define name="title">PageUID_123</ui:define> 

na innej stronie mam przedstawieniu tym z:

<ui:insert name="title"/> 

mogę owinąć tagi html wokół wkładki dobrze, ale muszę mieć możliwość wyprowadzenia wartości "title" jako atrybutu innego elementu. Mój cel jest do końca to do renderowania w html tak:

<meta name="pageid" content="PageUID_123"/> 

jeśli staram umieszczenie znacznika wstawiania zawartości = „” bit, zgłasza błąd parsowania. Czy jest jakiś sposób na zrobienie tego?

Odpowiedz

6

nie mam środowiska pracy przede mną, ale ja wierzę, że nie chce użyć <ui:define>, ale zamiast tego chcesz użyć <ui:param> a następnie użyć ${x} lub #{x} (lub zapomnieć których lub jeśli sprawy), aby je wyciągnąć.

Tak, bo przykład trzeba:

<ui:param name="title" value="PageUID_123" /> 

, a następnie:

<meta name="pageid" content="${title}"/> 

Niepokoi mnie tylko to, że używasz to mieć ładne szablony, tj

Szablon

:

<html> 
    <head> 
     <meta name="pageid" content="${title}"/> 
    </head> 
    <body> 
     <ui:insert name="content" /> 
    </body> 
</html> 

strona wewnętrzna:

<html xmlns="...so many"> 
    <ui:param name="title" value="PageUID_123" /> 
    <ui:define name="content"> 
     <!-- content goes here --> 
    </ui:define> 
</html> 

I naprawdę nie wiem, czy to będzie latać ...

Edit: Można spróbować ${title} lub #{title} tylko dla zabawy tak robisz teraz może to po prostu działać.

+1

W facelach nie ma znaczenia, czy używasz $ {x}, czy # {x}. Chodzi o to samo: https://facelets.dev.java.net/nonav/docs/dev/docbook.html#el –

Powiązane problemy