Как вернуться в & lt; h: form & gt; который имеет внутри & lt; h: inputFile & gt; тег в JSF [дубликат]

Исправить исключение NullReferenceException можно с помощью Null-условных операторов в c # 6 и написать меньше кода для обработки нулевых проверок.

Он используется для проверки нуля до выполнения доступа к члену (?. ) или index (? [).

Пример

  var name = p?.Spouse?.FirstName;

эквивалентен:

    if (p != null)
    {
        if (p.Spouse != null)
        {
            name = p.Spouse.FirstName;
        }
    }

В результате имя будет нулевым когда p равно null или когда p.Spouse имеет значение null.

В противном случае имени переменной будет присвоено значение p.Spouse.FirstName.

Для получения дополнительной информации: Операторы с нулевым условием

25
задан BalusC 19 May 2011 в 19:16
поделиться

1 ответ

Если вы не используете ajax или все еще используете JSF 1.x, и вам действительно нужно вызвать бизнес-действие в методе cancel() (т. е. просто перезагрузить страницу недостаточно), тогда ваш лучший выбор для добавления immediate="true" к кнопке. Таким образом, все поля ввода, которые не имеют immediate="true", будут пропускаться при обработке.

<h:commandButton value="Cancel" action="#{bean.cancel}" immediate="true" />

В JSF 2.x гораздо лучше отправить форму на <f:ajax>, которая по умолчанию только процессы @this вместо @form.

<h:commandButton value="Cancel" action="#{bean.cancel}">
    <f:ajax />
</h:commandButton>

Если вы хотите перейти на другую страницу здесь, добавьте ?faces-redirect=true к результату в методе cancel().

Или, если вам вообще не нужно вообще вызывать какие-либо бизнес-действия, просто используйте <h:button>, в котором вы прямо указываете результат (неявный) результат навигации.

<h:button value="Cancel" outcome="previouspage" />

Это будет в основном перезагрузите страницу запросом GET. <h:button> не существует в JSF 1.x, но вы также можете просто использовать для этого простой HTML + JS.

См. Также:

56
ответ дан Community 27 August 2018 в 23:13
поделиться
Другие вопросы по тегам:

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