如何从Backing Bean转发对JSF页面的响应?

时间:2011-05-17 20:00:05

标签: javascript jsf xhtml dojo javabeans

我目前正在JSF项目中工作并遇到问题。我有一个要求,

  1. 我有一个按钮。单击该按钮应触发一个dojo对话框,其中将显示“OK”和“Cancel”按钮以及一条信息消息。单击取消按钮将关闭弹出窗口。

  2. 单击“确定”按钮将通过调用document.formname.submit()以javascript方式提交表单。

  3. 问题是提交时,我需要将用户带到另一个带有响应的页面。我的意思是转发不是重定向。如果我使用带有action属性的h:commandButton,则弹出窗口显示并提交表单而不等待弹出窗口中的用户操作..

    我希望fisrt按钮点击应该触发javascript功能,“OK”应该提交表单并将响应转发到另一个页面。

    请建议我如何使用我的xhtml,javascript,backing bean和faces-config执行此操作。如果需要,我也会发布一些示例代码。

    截至目前,我有这样的想法,

    XHTML

    <h:commandButton id="viewBtn" type="button" value="submit" onclick="submidt()"/>
    

    JS:

    function submidt() {
                    var h = new dijit.Dialog({
                        title: "Hello"
                    });
                    var content = "<input type='button' onclick='document.searchSecurityForm.submit();' value='OK' /><input type='button' onclick='this.hide();' value='Cancel' />";
                    h.attr("content",content);
                    h.show();
                }
    

    面-配置:

        <navigation-rule>
        <from-view-id>/viewpage.xhtml</from-view-id>
        <navigation-case>
            <to-view-id>/editpage.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>
    

    所以这些让我与响应保持在同一页面(查看页面)。我想让用户进行编辑页面。

    提前致谢。 GOG

1 个答案:

答案 0 :(得分:0)

  

如果我使用带有action属性的h:commandButton,则弹出窗口显示并提交表单而不等待弹出窗口中的用户操作..

在javascript onclick方法结束时返回false。

function submidt() {
    var h = new dijit.Dialog({
        title: "Hello"
    });

    var content = "<input type='button' onclick='document.searchSecurityForm.submit();' value='OK' /><input type='button' onclick='this.hide();' value='Cancel' />";
    h.attr("content",content);
    h.show();
    return false;
}