我有两个a4j:outputPanels,如果支持bean上的imageSet
布尔值返回false,则不应显示其中一个。
另一个outputPanel有一个a4j:commandButton
和动作调用removeImage
设置imageSet = false。但是,当它渲染image
时,图像仍然显示。是否有可能将图像存储在缓存中并仍然显示它?
图像仍然位于src
指向的地方,我只是不希望它在按下此按钮时显示。什么好主意吗?
<a4j:outputPanel id ="image"
rendered="#{userInfo.imageSet}">
<img id="signatureImage"
src="/document/signature?imageId=#{userInfo.imageId}"
alt="No Image"/>
<br/>
</a4j:outputPanel>
<a4j:outputPanel id="Display">
<a4j:commandButton id="removeButton"
action="#{userInfo.removeImage}"
immediate ="true"
value="Remove Uploaded Signature"
disabled="#{!userInfo.stampSet}"
rendered="#{userInfo.editMode}"
onclick="this.disabled=true"
ajaxSingle="true"
styleClass="delete-button"
reRender="image">
</a4j:commandButton>
[Other things here, not relevant]
</a4j:outputPanel>
将其全部放在panelGroup中工作。如果不渲染outputPanel,屏幕上就没有需要更新/删除的img标签,图像就留在那里了。
<a4j:outputPanel id ="image">
<h:panelGroup rendered="#{userInfo.stampSet}}">
<img id="signatureImage"
src="/document/signature?signatureId=#{userInfo.userStampId}"
alt="No Image"/>
<br/>
</h:panelGroup>
</a4j:outputPanel>