我试图修改工具提示组件(基本上是为了对一些常用属性进行分组),但是由于我不知道如何定义for
属性,因此无法显示工具提示。
作为MCVE,我有此页面
<?xml version="1.0" encoding="UTF-8"?>
<!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:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:comp="http://xmlns.jcp.org/jsf/composite/comp" >
<h:head>
<title>Component Test</title>
</h:head>
<h:body>
<h:form>
<comp:myInputText value="ABC" />
</h:form>
</h:body>
</html>
其中comp:
前缀用于自定义组件(位于META-INF / resources / comp文件夹中)
当我的组件定义为:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:p="http://primefaces.org/ui" xmlns:c="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html" xmlns:comp="http://xmlns.jcp.org/jsf/composite/comp">
<c:interface>
<c:attribute name="value" required="true" />
</c:interface>
<c:implementation>
<p:inputText id="text" value="#{cc.attrs.value}" />
<p:tooltip for="@previous" value="tooltip" />
</c:implementation>
</html>
一切正常,因此在下一步中,我尝试用comp:myTooltip
替换p:tooltip,但未显示
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:p="http://primefaces.org/ui" xmlns:c="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html" xmlns:comp="http://xmlns.jcp.org/jsf/composite/comp">
<c:interface>
<c:attribute name="value" required="true" />
</c:interface>
<c:implementation>
<p:inputText id="text" value="#{cc.attrs.value}" />
<comp:myTooltip forr="@previous" data="tooltip" />
</c:implementation>
</html>
在我看来,问题是我无法正确定义for(我不得不将for改名为forr,只是因为for无法使用)。
我遇到错误:
找不到从“ j_idt5:j_idt12:j_idt14:j_idt11”引用的表达式“ @previous”的组件。
我也尝试为inputText定义id并在comp:myTooltip中使用它,但是它也无法正常工作...
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:p="http://primefaces.org/ui" xmlns:c="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html" xmlns:comp="http://xmlns.jcp.org/jsf/composite/comp">
<c:interface>
<c:attribute name="value" required="true" />
</c:interface>
<c:implementation>
<p:inputText id="text" value="#{cc.attrs.value}" />
<comp:myTooltip forr="text" data="tooltip" />
</c:implementation>
</html>
找不到从“ j_idt5:j_idt12:j_idt14:j_idt11”引用的表达式“ text”的组件。
修改(忘记了comp:myTooltip
):
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:p="http://primefaces.org/ui" xmlns:c="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html">
<c:interface>
<c:attribute name="forr" required="true" />
<c:attribute name="data" required="true" />
</c:interface>
<c:implementation>
<p:tooltip for="#{cc.attrs.forr}" position="right" value="#{cc.attrs.data}" />
</c:implementation>
</html>