JSF Ajax рендеринг не работает должным образом [дублировать]

Могу я просто добавить; люди всегда предполагают, что это компьютерная проблема, но если вы считаете своими руками (база 10), вы не можете получить (1/3+1/3=2/3)=true, если у вас нет бесконечности, чтобы добавить 0.333 ... в 0.333 ... так, как и с (1/10+2/10)!==3/10 в базе 2, вы обрезаете ее до 0,333 + 0,333 = 0,666 и, вероятно, округлите ее до 0,677, что также будет технически неточным.

Подсчитайте в тройном, а третья не проблема, может быть, какая-то гонка с 15 пальцами на каждой руке спросит, почему ваша десятичная математика была сломана ...

39
задан BalusC 10 February 2016 в 09:57
поделиться

1 ответ

Невозможно повторно выполнить рендеринг (обновление) компонента с помощью ajax, если сам компонент не отображается в первую очередь. Компонент должен всегда отображаться перед тем, как ajax может повторно отобразить его. Ajax использует JavaScript document.getElementById(), чтобы найти компонент, который необходимо обновить. Но если JSF не отобразил компонент на первом месте, то JavaScript не может найти что-либо для обновления.

Решение состоит в том, чтобы просто ссылаться на родительский компонент, который всегда отображается.

<h:form>
    ...
    <h:commandButton ...>
        <f:ajax ... render=":text" />
    </h:commandButton>
</h:form>
<h:panelGroup id="text">
    <h:outputText ... rendered="#{not empty user}" />
</h:panelGroup>

См. также:

78
ответ дан Community 24 August 2018 в 10:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: