首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >默认情况下,对话框中的咆哮加载

默认情况下,对话框中的咆哮加载
EN

Stack Overflow用户
提问于 2015-06-16 14:12:54
回答 3查看 1K关注 0票数 0

我有一个primefaces对话框,里面有一个输入文本区。文本区是必填字段。当按钮被点击时,我得到了咆哮信息。但是,即使当对话框第一次打开时,我仍然收到咆哮消息。我哪里错了?

代码语言:javascript
运行
复制
<p:dialog id="dumpNotesDialog" >
<p:growl autoUpdate="true" showDetail="true" id="message" />
<p:inputTextarea required="true" requiredMessage="Enter notes to save" id="dumpnotes" value="#{postProcessedDump.keyedinContent}" />
<p:commandButton value="Save" actionListener="#{dumpController.saveDumpNotesContent}" update="message" />
</p:dialog>
EN

回答 3

Stack Overflow用户

发布于 2015-06-16 21:04:44

你应该像下面的代码一样在对话框中显示表单

代码语言:javascript
运行
复制
<h:body>
        <h:form id="formId">
            <p:commandButton value="test" onclick="PF('dlg').show()" />

        </h:form>
        <p:dialog id="dumpNotesDialog"  widgetVar="dlg" appendTo="@(body)">
            <h:form>
                <p:growl autoUpdate="true" showDetail="true" id="message" />
                <p:inputTextarea required="true" requiredMessage="Enter notes to save" id="dumpnotes" />
                <p:commandButton value="Save" actionListener="#{dumpController.saveDumpNotesContent}" update="message" /> 
            </h:form>
        </p:dialog>
    </h:body>
票数 0
EN

Stack Overflow用户

发布于 2015-06-16 21:06:07

您的对话框可能与打开它的按钮位于相同的窗体中。并且打开按钮不必要地提交表单(如果它除了打开对话框之外什么也不做的话,就不必要了)。

若要修复此问题,请为打开按钮和对话框创建单独的窗体。对话框窗体通常位于对话框内部。将type="button"添加到打开对话框的p:commandButton中,这样它就不会发出不必要的POST请求。

票数 0
EN

Stack Overflow用户

发布于 2015-06-17 14:29:58

昨天,我给你写了一个小例子。我们不知道你的ManagedBean代码,因此我想这个例子是一个简单的Java代码。视图只有一个显示对话框的按钮,里面有一个输入文本区和一个名为Save的按钮,用于调用ManagedBean的方法。

代码语言:javascript
运行
复制
<!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">

        <h:head>  
            <title>Test Primefaces</title>
        </h:head>  

        <h:body>
            <h:form>
                <p:commandButton value="Open" type="button" onclick="PF('dlg1').show();" />
                <p:dialog id="dumpNotesDialog" widgetVar="dlg1">
                    <p:growl autoUpdate="true" showDetail="true" id="message" />
                    <p:inputTextarea required="true" requiredMessage="Enter notes to save" id="dumpnotes" value="#{dumpController.message}" />
                    <p:commandButton value="Save" actionListener="#{dumpController.saveDumpNotesContent}" update="message" />
                </p:dialog>
            </h:form>
        </h:body>  
    </html>

ManagedBean代码有一个用于绑定文本区域字段的对象和一个在按下Save按钮时调用的方法。

代码语言:javascript
运行
复制
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

@ManagedBean
public class DumpController {

    private String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public void saveDumpNotesContent(ActionEvent actionEvent) {
        /*TODO Your opearations here!*/

        final FacesContext context = FacesContext.getCurrentInstance();

        context.addMessage(null, new FacesMessage("Successful",  "Your message: " + message) );
    }
}

如果您想要一个更好的答案,请包括您的Java代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30860012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档