Нужно ли в любом случае передать параметр URL, созданный в Java, на выход в JSF? [Дубликат]

Пример одиночных, двойных, heredoc и nowdoc котировок

<?php

    $fname = "David";

    // Single quotes
    echo 'My name is $fname .'; // My name is $fname.

    // Double quotes
    echo "My name is $fname."; // My name is David.`

    // Curly braces to isolate the name of the variable
    echo "My name is {$fname}."; // My name is David.

    // Example of heredoc
    echo $foo = <<<abc
    My name is {$fname}
    abc;

        // Example of nowdoc
        echo <<< 'abc'
        My name is "$name".
        Now, I am printing some
    abc;

?>
27
задан BalusC 27 August 2014 в 07:18
поделиться

3 ответа

Да, вы можете использовать <f:viewParam> , чтобы установить параметр запроса как свойство управляемого компонента.

<f:metadata>
    <f:viewParam name="companyId" value="#{bean.companyId}" />
</f:metadata>

Вы можете при необходимости вызвать действие компонента с помощью <f:viewAction> (только JSF 2.2+) или <f:event type="preRenderView">.

<f:metadata>
    <f:viewParam name="companyId" value="#{bean.companyId}" />
    <f:viewAction action="#{bean.onload}" />
</f:metadata>

При использовании <f:viewAction> вы даже можете вернуть результат навигации.

public String onload() {
    // ...

    return "somepage";
}

Когда не на JSF 2.2, вы можете использовать для этого ExternalContext#redirect() . См. Также среди других . Как выполнить навигацию в режиме прослушивания preRenderView .

Обратите внимание, что это не относится к PrimeFaces. Это просто часть стандартного JSF. PrimeFaces - это просто библиотека компонентов, которая обеспечивает улучшенную поддержку ajax и skinnability.

См. Также:

45
ответ дан Community 23 August 2018 в 19:22
поделиться

параметры url также могут обрабатываться как параметры запроса, поэтому вы также можете получить доступ через

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
21
ответ дан Charles Menguy 23 August 2018 в 19:22
поделиться

Существует библиотека утилиты, OmniFaces , которая делает это из коробки.

@Inject @Param
private String key;

@Inject @Param
private Long id;
4
ответ дан Kukeltje 23 August 2018 в 19:22
поделиться
Другие вопросы по тегам:

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