Jsf 如何使用<;p:水印>;对于<;p:inplace>;编辑

Jsf 如何使用<;p:水印>;对于<;p:inplace>;编辑,jsf,jsf-2,primefaces,watermark,in-place-editor,Jsf,Jsf 2,Primefaces,Watermark,In Place Editor,我想使用作为编辑器。我试了一下,如下所示 <p:watermark for="txtSvcName" value="Please enter service name..." /> <p:inplace id="ipSvcName" editor="true" > <p:inputText id="txtSvcName" value="#{service.serviceName}" ma

我想使用
作为
编辑器。我试了一下,如下所示

<p:watermark for="txtSvcName" value="Please enter service name..." />
<p:inplace id="ipSvcName" editor="true" >                                   
    <p:inputText id="txtSvcName" value="#{service.serviceName}"  maxlength="50" 
     readonly="#{not subMerchantManagement.editPerspective}"    converter="UpperCaseConverter" />                                   
</p:inplace>

但不幸的是,这不起作用。如何实现这一点?

根据,当发生某些事件时,必须通过javascript调用
p:watermark
。您在
p:inputText
上有很多事件,您可以在这里拨打电话:
onblur
onchange
。。。只需调用
PrimeFaces.showWatermarks()功能。您也应该看看,因为还有另一个功能可以在需要时清除水印。祝你好运

已编辑

当用户保存插入的内容时,可以触发ajax事件。处理该请求时,只需调用show函数并更新主容器。我想它会有用的

<p:panel id="panel">
    <p:watermark for="txtSvcName" value="Please enter service name..." />
    <p:inplace id="ipSvcName" editor="true" emptyLabel="Please enter service name..." >                                   
        <p:inputText id="txtSvcName" value="#{service.serviceName}" maxlength="50" 
            readonly="#{not subMerchantManagement.editPerspective}"    converter="UpperCaseConverter" /> 
        <p:ajax event="save" listener="#{subMerchantManagement.handleSave}" 
            oncomplete="PrimeFaces.showWatermarks();" update="panel" />  
    </p:inplace>
</p:panel>


如果您没有询问有关jsf 1.2的问题,请不要使用
[jsf-1.2]
标记。对不起,您是对的;我猜,我用错标签了。我会更加小心的。谢谢…谢谢你的回复。我分析了PF指南。但事实上我找不到解决这个问题的办法;我应该在哪里使用显示和清除功能?你知道吗?不客气。这取决于你想要实现什么。我已经用一些有用的功能编辑了我的回复。再次感谢。实际上,当文本框位于inplace editor中时,水印最初不会显示文本。我想我们也可以使用javascript来解决这个问题。我想我会给文本框一个初始值,并在触发onclick事件时清除文本框值。加载页面时可以调用
Primefaces.showWatermarks()
,或者在使用
onclick=“Primefaces.showWatermarks();”
单击
p:inputText
时调用它。
嘿,我发现了问题。如果其值为空,Inplace不显示内部元素。当我对innerplace使用'emptyLabel'属性时,一切都正常。谢谢你所有的回答。。。