using
не предназначен для ловли исключений; он разработан, чтобы дать вам простой способ обернуть try
/ finally
вокруг объекта, который необходимо утилизировать. Если вам нужно перехватывать и обрабатывать исключения, вам нужно расширить его до полного try
/ catch
/ finally
или поместить содержащий try
/ catch
вокруг всего объекта.
Чтобы ответить на ваши изменения (это using
замена для try
/ catch
/ finally
?), то нет, это не так. В большинстве случаев, когда вы используете одноразовый ресурс, вы не собираетесь обрабатывать исключение, потому что обычно ничего полезного вы не можете сделать. Таким образом, он предоставляет удобный способ просто очистить ресурс независимо от того, что вы пытаетесь сделать, работает или нет.
Обычно код, который имеет дело с одноразовыми ресурсами, работает на слишком низком уровне, чтобы определить, какое правильное действие происходит при сбое, поэтому оставляется исключение для передачи вызывающей стороне, которая может решить, какое действие предпринять (например, повторить попытку, выполнить сбой, журнал и т. д.). Единственное место, где вы склонны использовать блок catch
с одноразовым ресурсом, - это если вы собираетесь перевести исключение (что, я полагаю, делает ваш уровень доступа к данным).
Вы уже смотрели эту демонстрацию RichFaces offerBox ? Под примерами есть ссылки для просмотра исходного кода.
Edit:
Похоже, вам нужно значение состояния в вашем bean-компоненте до того, как пользователь введет его в offerBox. Я бы использовал поддержку RichFaces ajax для передачи значения состояния компоненту, чтобы при вызове метода автозаполнения было состояние, выбранное пользователем на странице для заполнения списка пригородов.
(Оговорка: я знаю, что вопрос был задан довольно давно, но, возможно, это поможет кому-то с похожей проблемой...)
Посмотрите эту статью в блоге, в которой рассматривается нечто подобное: RichFaces - SuggestionBox и скрытое поле.
Ключ заключается в использовании
, обернутого внутри
. Это можно использовать для установки дополнительного значения для backing bean, когда onselect
срабатывает для SuggestionBox.
С помощью этого подхода мне удалось создать SuggestionBox, который отображает (и автозаполняет) имена клиентов, но при выборе устанавливает целый объект клиента (с несколькими свойствами; идентифицируется по id) для боба.