【问题标题】:Show a modal dialog using primefaces commandLink in a growl在咆哮中使用 primefaces commandLink 显示模式对话框
【发布时间】:2016-02-25 13:22:16
【问题描述】:

我想将此命令链接放在我的视图消息上,以便它在咆哮声中呈现,并且我可以在单击该链接时打开一个对话框。

<p:commandLink onclick="PF('dlg_new_user').show()" value="Click Here" />

<p:growl id="msgs" showDetail="true" sticky="true" globalOnly="true" escape="false" />

我的留言:

context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Title" , message ));

我使用下面的解决方案让它工作了,但是咆哮的内容是用转义的 html 呈现的,它会在几秒钟后呈现链接。

String message = "User not found, <a href=\"#\" onclick=\"PF('dlg_new_user').show();\">Click Here</a> to create new user";

例如:

网页

    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">

    <h:head>
    <title>Test my Growl Message</title>
    <link type="text/css" rel="stylesheet"
        href="#{facesContext.externalContext.requestContextPath}/resources/css/controlpanel.css   " />
   </h:head>
   <h:body>
    <h:form id="test" prependId="false">
        <p:growl id="msgs" showDetail="true" sticky="true" globalOnly="true" escape="false" />
        <p:outputLabel>
            No user found!! <p:commandButton id="btn" value="Click Here" action="#{searchMB.searchSPU}" styleClass="botao_form" update=":test, :msgs, :dialog_user" /> to new User.
        </p:outputLabel>
    </h:form>
    <p:dialog id="dialog_user" header="New User" widgetVar="dlg_new_user"
              position="center" draggable="true" resizable="false"
              closeOnEscape="true" appendTo="@(body)" modal="true">

        <!-- Dialog content -->

    </p:dialog>
</h:body>
</html>

MB:

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;


@ManagedBean(name="searchMB")
@SessionScoped 
public class TesteMB {

    private static final String mainMessage = "Username not founded.";
    private static final String link = "<a href=\"#\" onclick=\"PF('dlg_new_user').show();\">CLCK HERE</a> to create a new user.";

    public String searchSPU(){

        FacesContext context = FacesContext.getCurrentInstance();

        context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "No register founded" , mainMessage + "<br/>" + link ));
        return null;

    }
}

【问题讨论】:

  • 将您的问题分解为可管理的部分。在这种情况下至少有两个部分
  • 'My view' 不是一个视图,它是来自一些欠精细类的一个衬里......你为什么在那里使用 commandLink? Threre 没有 action 或 actionListener 所以在服务器上调用了什么?请...minimal reproducible example
  • 如果“我使用下面的解决方案让它工作了,” 表示它工作了,那么问题是什么?
  • minimal reproducible example 否则没有人能够尝试复制。
  • 这个“可用”如何?何时调用public String searchSPU()?请创建一个真实的minimal reproducible example。尝试一个新的空 jsf 项目。

标签: jsf primefaces modal-dialog commandlink growl


【解决方案1】:

问题解决了,我使用了两个咆哮,其中一个生成了错误的 html 代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 2014-10-19
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多