2010-06-08 4 views
3

Мне было интересно, как я мог бы создавать «компонентные облачные» бобы или, так сказать, «локальные переменные внутри составного компонента», которые являются частными для экземпляра составного компонента и живут до тех пор, пока этот экземпляр живет ,Можем ли мы иметь компонентный компонент в составном компоненте JSF2?

Ниже более подробно, объяснить на примере:

Предположим, что есть «калькулятор» компонент - то, что позволяет пользователям вводить в математическое выражение, и оценивает его значение. При желании он также отображает связанную функцию.

я могу сделать составной компонент, который имеет:

  • текстовое поле для принятия
  • две кнопки называются «оценить» математическое выражение, и «земля»
  • другой вложенный компонент, который вычерчивает функция

Это, очевидно, автономный кусок функции; так что кто-то, кто хочет использовать его можно только сказать < математики: expressionEvaluator/>

Но очевидно, что реализация будет нужен Java объект - то, что оценивает выражение, то, что вычисляет точки сюжета, и т.д. - и я представьте, что это может быть bean-область только для this экземпляр этот компонент, а не компонент с областью видимости или с запросом, который является общим для всех экземпляров компонента.

Как создать такой компонент? Это возможно даже с составными компонентами?

ответ

0

Не существует области действия экземпляра для каждого компонента. Но вы все равно можете добиться желаемого эффекта.

Используйте компонент ViewScoped для обработки и построения графика - эти функции являются «без гражданства» и поэтому подаются вашим входом.

Ваш вход будет поддерживаться компонентом, предоставленным пользователем, так же, как текстовое окно или виджет календаря нуждается в поле ввода, привязанного к компоненту, предоставленному пользователем. Это содержит данные, на которые действует ваш факсимильный компонент с отсутствующим статусом.

Если вы действительно хотите сохранить все, что содержится в компоненте, я думаю, вы можете вернуть вход с помощью компонента ViewScoped, который содержит карту с ключом ввода. Не уверен, что это сработает.

0

В качестве альтернативы вы также можете создать пользовательский UIComponent на основе Java. Хотя в JSF 1.x требовалось смехотворное количество «движущихся частей», в JSF 2.0 и Facelets на самом деле их не так много работало.

Обычно для создания пользовательских UIComponents на основе Java, вероятно, должно быть достаточно среднего, так как в большинстве случаев составные компоненты проще и проще. Тем не менее, UIComponents на базе Java по-прежнему используют их, и выполнение фактических вычислений может быть таким использованием.

+0

Есть ли у вас какие-либо рекомендации о том, как создавать пользовательские компоненты в JSF 2.0? –

+0

Этот простой пример запуска для Java на основе JSF 2.0: http://jdevelopment.nl/simple-java-based-jsf-custom-component/ –

 Смежные вопросы

  • Нет связанных вопросов^_^