JSF中的Command Button的两个连续动作

时间:2017-04-13 13:44:15

标签: jsf jsf-2 commandbutton

我正在尝试实施一个场景,其中有一个上传按钮,当有人成功上传文件时,用户将被转发到主页。

我有两个按钮用于导入,另一个用于关闭当前页面并返回主页,但我需要在上传按钮中包含返回主页功能,并且当文件是成功上传。我还为错误的扩展程序实现了错误消息。没有选择文件,因此只有在成功上传文件后才能返回。

请原谅我的不成熟。我是前端开发的新手。 请建议我可以与.XHTML(JSF)和java Bean集成的解决方案,因为这是我唯一的选择。 提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式获取oncomplete属性:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://xmlns.jcp.org/jsf/html"
  xmlns:p="http://primefaces.org/ui"
  xmlns:f="http://xmlns.jcp.org/jsf/core">

<h:head>
</h:head>
<f:view>
    <h:form>
        <p:fileUpload fileUploadListener="#{fileUploadView.handleFileUpload}" mode="advanced"
                      oncomplete="window.location='index.xhtml'"
                      update="messages" auto="true" sizeLimit="100000" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
        <p:growl id="messages" showDetail="true" />
    </h:form>
</f:view>
</html>

使用简单的托管bean:

@ManagedBean
public class FileUploadView {

    public void handleFileUpload(FileUploadEvent event) {
        FacesMessage message = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
        FacesContext.getCurrentInstance().addMessage(null, message);
    }
}

答案 1 :(得分:0)

只有在每件事情顺利进行时,您才能以编程方式从JSF操作方法重定向。

redirect from jsf?

您可以在handleFileUpload方法中执行此操作。