У меня есть простая страница xhtml JSF 2.0, которая не будет отображаться, когда я вставлю тег h: form. Я могу использовать обычный тег, и все отображается просто отлично.
Вот мои характеристики: - Java 1.6 - WebSphere 8.0.0.5 и его встроенный Apache MyFaces 2.0.4 - PrimeFaces 3.4.2 - OmniFaces 1.3 - Мне нужно поддерживать теги HTML 5, поэтому я использую
Вот простая тестовая страница:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>This is a test page</title>
</h:head>
<h:body>
<h:form></h:form>
</h:body>
</html>
Я также протестировал эту тестовую страницу с использованием NetBeans и Tomcat 7 с MyFaces 2.0.4, указанным в качестве зависимости, и зависимостями PrimeFaces и OmniFaces, удаленными из моего pom, чтобы убедиться, что ни одна из них не вызывает проблему. Страница по-прежнему не отображается.
Обратите внимание, что изменение DOCTYPE на обычное:
<?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">
тоже не работает.
Вот ошибка:
Я заметил, что проблема была исправлена в MyFaces 2.0.6. Проблема в том, что я привязан к WAS v8 MyFaces 2.0.4. Мне нужно использовать встроенный CDI WAS v8, чтобы я мог объединить его с EJB 3.1. Вы можете использовать встроенный CDI только со встроенными MyFaces (так сказано в руководстве WAS v8).
Любые предложения по обходному пути? Могу ли я вместо этого использовать простой тег <form>
? Я не вижу никаких ошибок MyFaces, когда использую тег <form>
.
Оказывается, виновником был OmniFaces 1.3. BalusC включил эту ошибку в Вики-страница известных проблем OmniFaces.