Как передать параметры URL JSF?

Мне не удалось найти, что способ передать параметры JSF пролистывает параметры URL.

http://www.example.com/jsfApp.jsp?param1=value1&param2=value2

Кто-то мог указать на меня на правильное направление с этим?

10
задан Bob 3 June 2013 в 11:56
поделиться

1 ответ

Поскольку вы используете JSP, я предполагаю, что вы используете JSF 1.x.

Чтобы создать ссылку с параметрами запроса, используйте h: outputLink с f: param :

<h:outputLink value="page.jsf">
    <f:param name="param1" value="value1" />
    <f:param name="param2" value="value2" />
</h:outputLink>

Значение можно установить динамически с помощью EL.

Чтобы установить их в управляемом компоненте автоматически, необходимо определить каждый из них как managed-property в faces-config.xml :

<managed-bean>
    <managed-bean-name>bean</managed-bean-name>
    <managed-bean-class>com.example.Bean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property>
        <property-name>param1</property-name>
        <value>#{param.param1}</value>
    </managed-property>
    <managed-property>
        <property-name>param2</property-name>
        <value>#{param.param2}</value>
    </managed-property>
</managed-bean>

Неявная переменная EL # {param} относится к карте параметров запроса, как вы знаете ее из Servlet API. Конечно, компонент должен уже иметь свойства param1 и param2 с определенными соответствующими геттерами / сеттерами.

Если вы хотите выполнить некоторую логику сразу после их установки, воспользуйтесь аннотацией @PostConstruct :

@PostConstruct
public void init() {
    doSomethingWith(param1, param2);
}

Для получения дополнительных подсказок о передаче параметров и тому подобном в JSF , вы можете найти эту статью полезной.

Подход JSF 2.x будет использовать либо @ManagedProperty в классе вспомогательного компонента, либо в целевом представлении. См. Также этот вопрос: ViewParam vs @ManagedProperty (value = "# {param.id}")

24
ответ дан 3 December 2019 в 16:52
поделиться
Другие вопросы по тегам:

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