-1

カスタム タグがあり、内部要素の ID を設定できるようにしたい

<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:rich="http://richfaces.org/rich"
    xmlns:a4j="http://richfaces.org/a4j">

<f:subview rendered="#{not empty id}">
    <h:message styleClass="message" id="#{id}" errorClass="message error"
        warnClass="message warn" for="#{element}" />
</f:subview>
<f:subview rendered="#{not id}">
    <h:message styleClass="message" errorClass="message error"
        warnClass="message warn" for="#{element}" />
</f:subview>
</html>

しかし、私はいつも得ます

Empty id attribute is not allowed

ユーザーがIDを設定するとそれが使用され、そうでない場合はjsfが独自に生成する必要があることをアーカイブするにはどうすればよいですか

4

2 に答える 2

1

を条件付き<c:if>で追加するために使用します。<f:attribute>id

<h:message styleClass="message" errorClass="message error" warnClass="message warn" for="#{element}">
    <c:if test="#{not empty id}">
        <f:attribute name="id" value="#{id}" />
    </c:if>
</h:message>

ところで、<html>代わりに<ui:composition>カスタムタグを使用したり、それなしで使用したりするのは非常に奇妙です。最終的に構文的に有効な HTML になると確信していますか? さらに、2 番目の<f:subview rendered>式は正しくありませんが、表示された特定のエラー メッセージとは関係ありません。

于 2012-07-15T02:38:25.813 に答える