Tin*_*iny 3 jsf primefaces jsf-2.2
<p:dataTable>右键单击行时,将<p:contextMenu>显示删除选项.单击此选项时,将<p:confirmDialog>显示两个按钮,Yes并显示No有关删除当前行的确认警告,如下所示.
<p:contextMenu for="dataTable">
<p:menuitem oncomplete="confirmDelete.show()"
value="Delete"
update="confirmDialog"
process="@this dataTable"
actionListener="#{testManagedBean.deleteActionListener}"
icon="ui-icon-close" ajax="true"/>
</p:contextMenu>
<p:confirmDialog id="confirmDialog"
widgetVar="confirmDelete"
message="#{testManagedBean.message}"
header="Message"
severity="alert"
closeOnEscape="true"
showEffect="slide"
hideEffect="fold"
appendTo="@(body)"
closable="true">
<p:commandButton id="btnYes"
value="Yes"
process="@this"
oncomplete="confirmDelete.hide()"
actionListener="#{testManagedBean.deleteActionListener}"
update="dataTable"/>
<p:commandButton id="btnNo"
value="No"
onclick="confirmDelete.hide()"
type="button" />
</p:confirmDialog>
Run Code Online (Sandbox Code Playgroud)
有没有办法message在此对话框中使用格式化消息设置属性.
例如,testManagedBean.message托管bean中的属性设置为类似的字符串
You are about to delete <font color='#ff0000'>2</font> rows. <br/>This action will never be undone. <br/>Are you sure?
确认对话框显示整个字符串.此字符串中的HTML应解释为HTML.我没有看到任何属性一样escape在<p:confirmDialog>.
有没有办法将此字符串显示为格式化的消息.
Tin*_*iny 12
我发现了一个丑陋的解决方案嵌套<f:facet name="message">内<p:confirmDialog>.
<p:confirmDialog id="confirmDialog"
widgetVar="confirmDelete"
header="Message"
severity="alert"
closeOnEscape="true"
showEffect="slide"
hideEffect="fold"
appendTo="@(body)"
closable="true">
<p:commandButton id="btnYes"
value="Yes"
process="@this"
oncomplete="confirmDelete.hide()"
actionListener="#{testManagedBean.deleteActionListener}"
update="dataTable"/>
<p:commandButton id="btnNo"
value="No"
onclick="confirmDelete.hide()"
type="button" />
<f:facet name="message">
<h:outputFormat value="#{testManagedBean.message}" escape="false"/>
</f:facet>
</p:confirmDialog>
Run Code Online (Sandbox Code Playgroud)
message从中删除属性<p:comfirmDialog>并<f:facet name="message">在其中嵌套.
注意:<h:outputFormat>仅在需要通过嵌套传递一个或多个参数以在消息文本<f:param>中的相应占位符({0})中替换时才需要.<h:outputText escape="false">如果不需要传递这样的参数,请继续使用.