2011-07-12 15 views
11

Pracuję z zespołem JSF, który zajmuje się front endem. Wyprowadzamy pole INPUT i muszę dołączyć atrybuty placeholder i kilka data- do renderowanego tagu. JSF jednak je usuwa. Nie znam JSF na tyle, by pomóc zespołowi JSF, ale pomyślałem, że mogę przynajmniej zapytać.JSF 2.0 usuwa wymagane atrybuty HTML5

Używaliśmy starszej wersji JSF, ale zaktualizowaliśmy ją do wersji 2.0, ponieważ wyglądało na to, że obsługuje HTML5. Czy tak nie jest? Czy istnieje znany sposób obejścia tego?

Odpowiedz

9

JSF nie usuwa ich dokładnie. Po prostu ich ignorujemy, ponieważ nie należą one do obsługiwanych/znanych atrybutów danego komponentu. W przypadku na przykład <h:inputText> (który domyślnie renderuje znacznik HTML <input type="text">), można znaleźć wszystkie obsługiwane atrybuty w view declaration language (VDL) documentation.

Aby rozwiązać ten problem, należy utworzyć custom component lub, lepiej, tylko custom renderer, który zastępuje standardowy renderer <h:inputText> i uwzględnia atrybuty niestandardowe.

+0

Dzięki, Balus. To jest właśnie ta trasa, którą zamierzamy zabrać. Pisanie własnych renderers dla wszystkich naszych tagów. Tedius, ale powinien nas tam zabrać. –

+2

[tutaj jest niestandardowy renderer] (http://stackoverflow.com/questions/6859520/adding-custom-attribute-html5-support- to-jsf-2-0-uiinput-component) –

0

Jeśli używasz Facelet, możesz po prostu napisać w elemencie HTML5 wyrażenie EL.

Na przykład wideo:

<video name="myVideo" poster="#{bean.poster}" > 
    <source src="#{bean.vidoeSrc}" type='video/ogg; codecs=&quot;theora, vorbis&quot;' /> 
</video> 

ten sposób można użyć komponentu ŻADNYCH HTML5 - i wiązanie będzie JSF jak innych komponentów JSF. możesz również użyć tej samej idei w elemencie wejściowym HTML.

EDYCJI

Dla zastępczego można użyć PrimeFaces inplace. Sprawdź ich komponenty, aby uzyskać więcej szczegółów.

+0

Czy możesz wyjaśnić, że niektóre więcej? Nie jestem pewien, czym jest EL. Naszym szczególnym problemem jest przechodzenie atrybutów 'data- *' i 'placeholder' do HTML. Wygląda na to, że będziemy musieli napisać nasz własny renderer. –

+0

@DA: EL (język wypowiedzi) to te rzeczy "# {}". Zobacz także http://stackoverflow.com/tags/el/info Mimo wszystko wierzę, że Odelya myli atrybuty HTML5 ** z tagami HTML5 **. – BalusC

Powiązane problemy