Привет, предположим, у вас есть следующий составной компонент:
<!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:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core" xmlns:composite="http://java.sun.com/jsf/composite"
>
<composite:interface>
<composite:attribute name="action" targets="#{cc.clientId}:value"/>
</composite:interface>
<composite:implementation>
<h1>clientId is: #{cc.clientId}</h1>
<h:commandButton id="value" action="null" value="submit"/>
</composite:implementation>
</html>
Этот составной компонент просто выводит clientId сейчас, если я использую этот составной компонент следующим образом:
<h:form id="formID">
<wui:test id="testID"/>
</h:form>
В результате я ожидал бы получить:
clientId: formID: testID
НО, что я действительно получаю, это:
clientId: testID
Теперь, если я нажму на кнопку, форма будет отправлена, и теперь результат будет:
clientId is: formID:testID
Причиной проблемы является атрибут action в составном интерфейсе, если я удаляю его, тогда id всегда равен formID :: testID
Я что-то упустил?
Обновление:
Я использую Mojarra javax.faces-2.1.4.jar
Обновление:
Я создал проблему для команды Мохарра: http://java.net/jira/browse/JAVASERVERFACES-2278