使用MethodExpression属性时,Composite Component clientId不一致

时间:2012-01-02 23:25:20

标签: jsf-2 composite-component

嗨,假设您有以下复合组件:

<!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是:formID:testID

导致此问题的原因是复合界面中的操作属性,如果我将其删除,则ID始终为 formID :: testID

我错过了什么吗?


更新

我正在使用Mojarra javax.faces-2.1.4.jar


更新

我为Mojarra团队创建了一个问题:http://java.net/jira/browse/JAVASERVERFACES-2278

0 个答案:

没有答案