Java 如何在JSF中从ActionListener呈现部分表单

Java 如何在JSF中从ActionListener呈现部分表单,java,ajax,jsf,Java,Ajax,Jsf,在我的一个jsf页面中有一个简单的文件上传机制。文件上传后,我有一个ActionListener可以启动。此时,我可以访问用户上传的文件名,我想将其添加到outputText组件中。如何从java代码重新呈现表单,以便显示文件?我可以调用一些ajax函数吗 /** * Called when a file is uploaded * @param event The FileUploadEvent that contains info on the file uploaded */ pub

在我的一个jsf页面中有一个简单的文件上传机制。文件上传后,我有一个ActionListener可以启动。此时,我可以访问用户上传的文件名,我想将其添加到outputText组件中。如何从java代码重新呈现表单,以便显示文件?我可以调用一些ajax函数吗

/**
 * Called when a file is uploaded
 * @param event The FileUploadEvent that contains info on the file uploaded
 */
public void handleFileUpload(FileUploadEvent event){ 
    data = event.getFile().getContents();
    name = event.getFile().getFileName();
}

上面是上传文件后运行的代码。你可以看到我得到了文件名。我现在需要重新呈现outputText,以便显示名称。

这通常在视图侧声明

尽管您没有提到任何关于它的内容(这很糟糕;您应该始终在问题中提到您正在使用的JSF实现和组件库,并且确保不要将所有内容过度概括为“标准JSF”),但您在那里看到的侦听器方法代码可以识别为PrimeFaces特有的代码

在这种情况下,您实际上应该使用组件自己的
update
属性,该属性应该引用您希望在ajax请求完成后更新的组件的(相对)客户端ID


...
就这些。在这个特定的示例中,您只需将文件名分配给
text
属性

另见:
  • -列出所有可用属性

太棒了,我很感激。我一直在读Primefaces的文档,但是有太多的东西要读。如果你说不出来,我是JSF的新手:)所以我一定不要过度概括我的问题。再次感谢。无论如何,你也可以帮助回答这个问题。我有一种感觉与我对JSF生命周期中ActionListener如何工作的理解有关。