tôi có thành phần hỗn hợp sau:có điều kiện làm cho thuộc tính nguyên tố trong một thành phần hỗn
<?xml version="1.0" encoding="UTF-8"?>
<ui:component xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface>
<composite:attribute required="true" name="field" />
<composite:attribute required="true" name="value" />
<composite:attribute required="false" name="size"/>
</composite:interface>
<composite:implementation>
...
<div class="wrapper">
<h:inputText value="#{cc.attrs.value}"
id="#{field.id}"
rendered="#{field.rendered}"
size="#{cc.attrs.size}">
</h:inputText>
<h:messages for="#{field.id}" styleClass="errorMessage"/>
</div>
...
</composite:implementation>
</ui:component>
Vấn đề là khi tôi đang sử dụng thành phần này mà không cần thiết lập thuộc tính size
của nó, nó vẫn được trả lại như size=0
trong phần tử nhập html.
Điều tôi muốn là chỉ hiển thị thuộc tính lồng nhau h:inputText
nếu thuộc tính đó có giá trị hợp lệ (ví dụ: không trống). Ngoài ra, tôi muốn phơi bày tất cả các thuộc tính của phần tử lồng nhau nếu chúng không được ghi đè một cách rõ ràng.
Làm cách nào có thể?
Hãy cẩn thận khi gắn thẻ, thành phần tổng hợp không phải là thành phần tùy chỉnh. Xem thêm http://stackoverflow.com/questions/5704620/what-is-the-difference-between-custom-components-and-composite-components – BalusC
Cảm ơn bạn đã sửa. Tôi biết điều đó nhưng tôi hơi bất cẩn, có lẽ tôi cần nghỉ ngơi vài phút: S –