【问题标题】:Input fields not emptying after submit and redirect?提交和重定向后输入字段不清空?
【发布时间】:2017-04-10 19:11:07
【问题描述】:

当我想从我的 jsf 页面“删除飞机”时,如果成功删除飞机,我会重定向到页面并显示警报,告诉用户飞机已成功删除。但是,用户在 h:inputText 中输入的值仍然存在,它们不会为空。

JSF 页面:

<h:form>
    <h:panelGrid columns="3" class="table">
        <h:outputLabel value="Plane ID" />
        <h:inputText  value="#{listAirplaneBB.airPlaneId}"/>
        <h:commandButton value="Delete" 
            class="btn btn-primary"
            action="#{addAirplaneCtrl.deleteAirplane}" />
    </h:panelGrid>
</h:form>

Bean 代码:

public String deleteAirplane(){
    //delete the plane
    return private/user?faces-redirect=true;
}

关于为什么重定向后字段不为空的任何想法?

【问题讨论】:

    标签: java html jsf


    【解决方案1】:

    也许您的 listAirplaneBB 是一个 @ViewScoped bean(无法通过您的示例来判断)。
    在这种情况下,您必须在重定向之前手动清除任何特定字段,因为 JSF 在目标页面未更改时保持该 bean 的活动。

    【讨论】:

    • 是的,它是一个 @ViewScoped bean。我应该将其更改为 @RequestScoped 还是实施手动重置?我应该选择哪一个?我用于从后端部分获取飞机列表的 bean-
    • 这很难说,因为这取决于您的页面内容是否在某些时候需要 ajax 处理。在这种情况下,您很可能不得不使用 ViewScoped。另一方面,如果您帖子中的表单内容是该页面上唯一预期的内容,那么我会选择 RequestScoped,因为这样配置它会更自然。希望对您有所帮助。
    • 这里是帖子的链接,它更详细地解释了差异 - stackoverflow.com/questions/6025998/…
    • 谢谢,很有帮助!
    猜你喜欢
    • 2020-11-04
    • 1970-01-01
    • 2020-09-06
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多