假如它确实是一个请求/视图作用域的
bean,您可能是浏览器内置的自动完成/自动填充功能的受害者。您可以通过添加
autocomplete="off"到有问题的输入组件来关闭它。
<h:inputText ... autocomplete="off" />
再次注意,输入的不是JSF,而是Web浏览器本身。清除浏览器缓存,您将看到浏览器不再这样做。根据浏览器的版本/版本,您也可以重新配置它,以使其不那么急于自动完成。
更新
:根据您的问题更新,您的bean原来是会话作用域的。这不是基于请求/视图的表单的正常范围。会话范围的Bean实例在同一HTTP会话中的所有浏览器窗口/选项卡(读取:所有请求/视图)之间共享。通常,您仅在会话中存储登录用户及其首选项(语言等)。当您关闭并重新启动整个浏览器,或使用其他浏览器/机器时,您只会得到一个全新的实例。
将其更改为请求或查看范围。在这个特定的简单示例中,请求范围应满足:
@ManagedBean@RequestScoped
*根据评论 *更新2 ,
哦,对了,我最好使用@RequestScoped。但这不能解决我的问题-我想保留此值,但我不想在textInput中显示它。该值在请求-
响应周期的上下文中很重要。
现在,具体的功能要求更加明确了(在以后的问题中,请注意在准备问题时,我不知道您最初是这样问的)。在这种情况下,请使用具有以下两个属性的视图范围的bean:
@ManagedBean@ViewScopedpublic class TestBean { private String testString; private String savedTestString; public void testAction() { savedTestString = testString; testString = null; } // ...}您也可以选择将其存储在数据库或注入的托管Bean的属性中,该属性实际上又位于会话范围内。



