我的ADF表单工作正常,除了一个奇怪的缓存问题.我有一个不使用数据库的ADF表单.它有一个输入文件字段,用户可以选择电子表格.当他们单击"处理文件"按钮时,它会读取电子表格,执行一些数据操作并写入固定文件.当他们点击"处理文件"按钮时,包含文件名的文本框基本上变成了一个没有显示框的标签,它显示了他们上传的文件的名称.当我关闭浏览器并重新打开它时,页面会重新显示所选的最后一个文件仍显示在标签中.我还注意到,在程序开始时初始化为零的全局变量(在类中)的值以第一次测试结束时的最后一个值开始.在浏览器中多次刷新页面没有重置页面.为什么这样做?我想如果浏览器在页面再次启动时关闭,它应该重新开始.我通过在程序中再次设置为零来绕过全局变量,但是我无法将文件名值设置为null.它似乎只有在点击一个按钮后才会生效.我应该做些什么样的刷新?我尝试使用Java进行整页刷新,但这似乎不起作用.
我还应该提到我使用的是Internet Explorer浏览器,当我在不同的浏览器中尝试使用Chrome浏览器时,它仍然已经选择了该文件.它似乎重新启动的唯一一次是我重新部署应用程序.
我正在使用jDeveloper 11.1.1.4.(也使用11.1.1.6尝试)Weblogic服务器是10.3.6.我可以告诉你,我检查了weblogic-application.xml文件中的session选项卡.唯一检查的是启用会话跟踪和启用会话跟踪的URL重写.在内存会话是无限的.在Cookies下,检查启用cookie和启用cookie的HTTP代理缓存.在Cookie生命周期内,Cookie将永不过期.虽然,我没有设置任何cookie,除非这是在幕后做的事情.持久存储设置为内存.
其他一切都是空白的.我尝试取消选中启用会话跟踪和启用URL重写并重新部署,但页面只是挂起而根本不会加载.
所以,那就是我所处的位置.我一直试图找到一种方法可能重置inputFile对象,但到目前为止没有运气.我是ADF和Java的新手,所以请记住这些建议,我可能需要更多细节.谢谢.
小智 5
假设您没有将inputFile组件的value属性显式绑定到托管bean属性,您只需要在组件实例上调用resetValue().
以上使它成功.现在,让我们把它弄清楚:
在JSF开发人员中,不建议使用支持bean和组件绑定,而是首选动态组件查找.所以你可以跳过第3步,只使用FacesContext.getCurrentInstance().getViewRoot().findComponent('id_of_inputFileComp'); 获取RichInputFile实例的句柄.这种方法的棘手之处在于您需要了解命名容器.
坦率
| 归档时间: |
|
| 查看次数: |
4007 次 |
| 最近记录: |