2 个互斥的InputComponents 引用相同的Field 则更新相同的字段两次
我有一个带有 2 JSF 输入组件
的屏幕:inputText
和 inputText with suggestBox
。它们都绑定到同一字段,但只有一个可以可见/渲染(互斥)。
问题是,如果我在其中写一些内容然后提交,则另一个未显示的组件正在更新模型(同一字段再次更新)使用它的值(这是空字符串或null)。为了解决这个问题,我在类中创建了另一个字段,以便这两个组件不会引用同一字段。
我不喜欢这样,因为我正在改变我的模型来解决 GUI 问题。
我怎样才能有2个互斥的输入 引用相同值的组件 按照我想要的方式工作?
I have a screen with 2 JSF Input Components
: inputText
and inputText with suggestionBox
. They are both bound to the same field, but only one can be visible/rendered (mutual exclusion).
The thing is that if I write something in one and then submit, the other component which is not displayed is updating the model (the same field is updated again) with it's value (which is empty string or null). To work around this I created another field in my Class, so that the 2 components don't refer to the same field.
I don't like this, because I'm altering my model to solve a GUI problem.
How can I have 2 mutually exclusive input
components referring the same value
working as I want ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
关键是使用渲染属性来显示/隐藏组件,以便一次只有一个或另一个实际更新模型。这是一个非常基本的示例来说明:
以及具有共享属性
testString
的示例 bean:The key is to use the rendered attribute to show/hide the components so that only one or the other is actually updating the model at a time. Here is a very basic example to illustrate:
and the example bean with shared property
testString
:正如我所说,我无法使用渲染,因此在这种情况下,使用
readonly true
和visible false
可以提供我需要的行为。谢谢。As I stated I can't use rendered, so in this case using
readonly true
withvisible false
gives me the behavior I need. Thanks.