我想創建一個標籤(源)文件來獲取facelets中的自定義標籤(as described here)。我希望它能像這樣使用:如何使用值屬性和支持bean創建InputText標記文件?
<my:inputText value="#{myBean.someString}"/>
<my:inputText inputText="#{myBean.inputText}"/>
在第一種情況下,可以將它綁定到我的bean中的一個簡單的String屬性。在第二種情況下,myBean應該爲輸入字段提供一個支持bean。該支持bean不僅包含值,還包含諸如maxlength,disabled,mandatory等屬性。
標籤文件看起來像這樣(簡化):
<?xml version="1.0" encoding="UTF-8"?>
<ui:fragment
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:h="http://java.sun.com/jsf/html">
<c:set var="someValue" value="#{value}"/>
<c:if test="#{empty value and not empty inputText}">
<c:set var="someValue" value="#{inputText.value}"/>
</c:if>
<h:inputText value="#{someValue}"
disabled="#{disabled or inputText.disabled}"/>
</ui:fragment>
這個問題,這是不允許的。當我在輸入字段中輸入一些文本時,出現以下錯誤:設置操作的非法語法。我怎樣才能使用「值」或「inputText.value」取決於是否指定一個或另一個?
我看不出有什麼區別,只有「禁用」屬性。你能向我解釋爲什麼這應該有幫助嗎? – 2009-07-20 11:14:38