我的jsf页面(弹出窗口)中有一个表单,用于上传文件。上传文件时,我需要刷新父页面。我能用什么方法来完成这项任务。
我的JSF页面很简单,看起来像这个
<h:form id="uploadForm" enctype="multipart/form-data">
<ul class="page">
<li>
<h:messages layout="list" for="uploadForm" styleClass="generic-message"/>
</li>
<li>
<h:outputLabel for="file" value="select a file" />
<t:inputFileUpload id="file" value="#{aBean.file}" required="true" requiredMessage="File need to be selected"/>
<h:message for="file" styleClass="msg" />
</li>
<li>
<h:outputLabel value="Name" />
<h:inputText id="name" value="#{aBean.name}" label="#{aBean.name}" required="true" requiredMessage="Name is required"/>
<h:message for="name" styleClass="msg" />
</li>
<li>
<h:commandButton value="Upload" action="#{aBean.submit}" />
</li>
</ul>
</h:form>
任何建议都将受到高度赞赏
在弹出窗口中,您需要有条件地呈现
<script>window.opener.location.reload(true);</script>
以便刷新父窗口。
你可以通过触发动作方法中的一些布尔值来实现这一点
private boolean reloadParent;
public void submit() {
// ...
reloadParent = true;
}
public boolean isReloadParent() {
return reloadParent;
}
并将脚本封装在具有CCD_ 2属性的CCD_
<ui:fragment rendered="#{aBean.reloadParent}">
<script>window.opener.location.reload(true);</script>
</ui:fragment>