我有一个<StackPanel Name="stackTextPanel" Orientation="Horizontal">
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<!-- Gotta be inside the Style, not outside. -->
<Setter Property="Margin" Value="0,8,0,0" />
<Style.Triggers>
<DataTrigger Binding="{Binding QuickDrawBarPinned}" Value="False">
<Setter Property="Margin" Value="0,8,0,0" />
</DataTrigger>
<DataTrigger Binding="{Binding QuickDrawBarPinned}" Value="True">
<Setter Property="Margin" Value="0,48,0,0" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
</StackPanel>
wordController CDI bean。它有一个方法@ViewScoped
,可以将变量addWord()
添加到currentWord
。它在没有AJAX的情况下工作正常,但只要我包含List
,变量f:ajax
在currentWord
方法中始终为空。在ajax与JSF一起工作的方式上有一些我缺少的东西。这里出了什么问题?
addWord()
答案 0 :(得分:5)
f:ajax
默认为execute="@this"
(在这种情况下等于commandButton
),因此不执行inputText(≈已提交)。这就是为什么它在行动中为空。只需添加
<f:ajax execute="@form" render="wordlist" />
执行整个表单,或
<f:ajax execute="@this words" render="wordlist" />
只执行inputText和按钮 - 如果有更多输入组件你不想提交。
在后一种情况下,您需要@this
,因为没有words
只会执行commandButton
,因此不会执行{{1}},因此不会执行操作。
Here更多阅读。