嗨,假设您有以下复合组件:
<!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