Не удалось добавить HTML в <ui: define> - PullRequest
1 голос
/ 13 октября 2011

Я недавно начал работать с JSF2.0 и Facelets, но столкнулся с тем, что, как я надеюсь, является легким ответом для большинства из вас.Когда я пытаюсь добавить любой тег HTML в тег <ui:define>, я получаю следующую ошибку:

javax.faces.view.facelets.TagException: /content/home/test.xhtml @ 11, 10 Библиотека тегов поддерживает пространство имен: http://java.sun.com/jsf/facelets,, но тег для имени не определен: div

Если я удаляю все теги HTML из раздела, страница отображается правильно.Вот моя простая страница, которую я пытался заставить работать:

<!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:f="http://java.sun.com/jsf/core"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:jrc="http://com.comanche.web.components"> 
<ui:composition template="/templates/masterLayout.xhtml" xmlns="http://java.sun.com/jsf/facelets">      

    <ui:define name="windowTitle">Home</ui:define>
    <ui:define name="content">
            <div>I want to add HTML and am having lots of trouble.</div>
    </ui:define>
</ui:composition>
</html>

Я знаю, что смогу добавить HTML в теге define.Что мне нужно сделать, чтобы получить HTML без ошибок.

1 Ответ

2 голосов
/ 13 октября 2011

Ваше объявление <ui:composition> использует неправильное глобальное пространство имен XML.Вы определили http://java.sun.com/jsf/facelets как глобальное пространство имен XML, в то время как оно должно было быть присвоено ui: пространству имен XML.Тег <div> не существует в теге Facelets (это то, что пытается сказать вам исключение).Вы должны были назначить http://www.w3.org/1999/xhtml в качестве глобального пространства имен XML.Кроме того, <!DOCTYPE> и <html> будут игнорироваться в любом случае. подошва содержимое файла должно быть следующим:

<ui:composition template="/templates/masterLayout.xhtml" 
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets">      

    <ui:define name="windowTitle">Home</ui:define>
    <ui:define name="content">
        <div>I want to add HTML and am having lots of trouble.</div>
    </ui:define>
</ui:composition>

Ничего до или после <ui:composition> в том же файле не требуется.

Смотрите также:

...