Несовместимый составной компонент clientId при использовании атрибута MethodExpression - PullRequest
2 голосов
/ 03 января 2012

Привет, предположим, у вас есть следующий составной компонент:

<!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

...