Olá, Realizei toda a atualização para o JSF 2.2, utilizei o atributo f:passThroughAttribute, conferi meu código fonte e o type do atributo foi alterado para email, mas mesmo assim a validação no email do navegador (html 5) não esta ocorrendo :/
Essa é minha view:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<ui:composition template="_template.xhtml">
<f:metadata>
<f:viewParam name="autorId" value="#{autorBean.autor.id}" />
<f:viewAction action="#{autorBean.carregarPorId}"
if="#{param.autorId != null}" />
</f:metadata>
<ui:define name="titulo">Novo Autor</ui:define>
<ui:define name="conteudo">
<h:form>
<h:messages id="messages" />
<fieldset>
<legend>Dados do Autor</legend>
<h:panelGrid columns="2">
<h:outputText value="Nome" for="nome" />
<h:inputText id="nome" value="#{autorBean.autor.nome}"
required="True" requiredMessage="Nome é Obrigatório">
<f:ajax event="blur" render="messages" />
</h:inputText>
<h:outputText value="Email" for="email" />
<h:inputText id="email" value="#{autorBean.autor.email}" required="true">
<f:passThroughAttribute name="type" value="email" />
</h:inputText>
</h:panelGrid>
<h:commandButton value="Gravar" action="#{autorBean.gravar}">
<f:ajax execute="@form" render="@form tabelaAutores" />
</h:commandButton>
<br /> <br />
<fieldset>
<legend>Lista de Autores</legend>
<h:dataTable id="tabelaAutores" value="#{autorBean.autores}"
var="autor">
<h:column>
<h:outputText value="#{autor.nome}" />
</h:column>
<h:column>
<h:commandButton id="removeAutor" value="X"
action="#{autorBean.remover(autor)}" immediate="true" />
</h:column>
<h:column>
<h:commandButton id="alteraAutor" value="Alterar"
action="#{autorBean.carregar(autor)}" />
</h:column>
</h:dataTable>
</fieldset>
</fieldset>
</h:form>
</ui:define>
<!-- FIM DO CONTEUDO -->
<ui:define name="rodape-nome-formulario">
Autores
</ui:define>
</ui:composition>
</html>
Esse é meu faces-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
<lifecycle>
<phase-listener>br.com.alura.livraria.util.LogPhaseListener</phase-listener>
</lifecycle>
</faces-config>
Esse é meu fonte:
<table>
<tbody>
<tr>
<td>Nome</td>
<td><input id="j_idt11:nome" type="text" name="j_idt11:nome" value="" onblur="mojarra.ab(this,event,'blur',0,'j_idt11:messages')" /></td>
</tr>
<tr>
<td>Email</td>
<td><input id="j_idt11:email" name="j_idt11:email" value="" type="email" /></td>
</tr>
</tbody>
</table>
Valeu!