我正在使用jsf的web应用程序,我对此很陌生
有一个用户填写和发送的表单。服务器在辅助bean中接收表单,它执行所需的操作并重定向到不同的页面
问题是当用户点击浏览器的后退按钮时,它会返回到表单,其中所有字段都填充了用户引入的数据。我需要清理那个表格
我已尝试在页面加载时手动清理字段,但它不起作用,表单会重新填充以前的数据。
有什么帮助解决这个问题吗?
提前谢谢。
答案 0 :(得分:1)
两个可能的问题:
您的浏览器会出于礼貌填写这些值,使用cache control或使用omnifaces'CacheControlFilter禁用该值,您可以通过web.xml
启用该功能。另请参阅how to do autocomplete="off" at form level in JSF以防止浏览器的自动填充功能填写以前的值。
保存这些值的服务器端代码仍然存在。您没有提到您使用的范围,但请记住@ViewScoped beans并且基本上存储在会话中的所有内容都不一定会在导航中被破坏。如果您无法管理bean的生命周期以便自动销毁它们,则需要在重定向之前自行重置表单值:
@ManagedBean @SessionScoped
public class TestBean implements Serializable {
private String myString;
public String saveIt() {
doStuffWithString();
myString = "";
return "saved";
}
}