工具提示作为PrimeFaces组件

时间:2019-02-12 10:47:23

标签: primefaces

我试图修改工具提示组件(基本上是为了对一些常用属性进行分组),但是由于我不知道如何定义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>

0 个答案:

没有答案