Любая идея кто-нибудь? Возможно ли, что мы укажем имя поля ввода формы? Как это сделать?Как JSF генерирует имя поля ввода формы?
ответ
Он генерируется FormID: fieldId
Так что, если вы имели следующий:
<h:form id="searchForm">
<h:inputText id="searchField" ... />
</h:form>
Имя (и HTML ID) в поле поиска будет:
searchForm: searchField
В целом, все компоненты JSF имеют идентификатор. Если вы не предоставите один, JSF создаст автоматический идентификатор, используя формат j _
idXXX (XXX - это увеличенное число).
Некоторые компоненты реализуют интерфейс javax.faces.component.NamingContainer, в частности <h:form>
. Это означает, что все дочерние элементы этого компонента будут иметь свой ID, предваряемый идентификатором этого контейнера, разделенным символом «:». Таким образом, в данном примере:
<h:form id="myForm">
<h:inputText id="myInput" .../>
</h:form>
реального идентификатор входа (т.е. идентификатор входного объекта HTML) будет MyForm: myInput.
Как указано, атрибуты имени и идентификатора HTML генерируются контейнерами именования на основе пространства имен приложений. Это предотвращает столкновения, когда элементы управления являются дочерними элементами повторяющихся элементов управления (например, UIData
), или JSP отображается дважды на одной странице (например, в среде портлета). Идентификатором, отображаемым в HTML, является clientId.
Можно жестко установить или построить clientId
вручную, но это очень хрупкий подход. Лучше использовать компонент getClientId (FacesContext); это то, что используют рендереры.
боба, который может получить clientId
для связанного компонента:
/** Request scope */
public class IdBean implements Serializable {
private UIComponent mytext;
public String getClientId() {
return mytext.getClientId(FacesContext.getCurrentInstance());
}
public UIComponent getMytext() { return mytext; }
public void setMytext(UIComponent mytext) { this.mytext = mytext; }
public List<String> getRows() {
List<String> rows = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
rows.add("row" + i);
}
return rows;
}
}
Вид:
<f:view>
<h:form>
<h:dataTable value="#{idBean.rows}" var="row">
<h:column>
<h:outputLabel value="#{row}" />
<h:inputText binding="#{idBean.mytext}"
onclick="foo('#{idBean.clientId}');" />
</h:column>
</h:dataTable>
</h:form>
</f:view>
<script type="text/javascript">
function foo(name) {
alert('You clicked '+name);
}
</script>
MyText контроль оказывается в 10 раз, так что любой код, который излучает свое название также должен быть дочерним элементом dataTable.
Дополнительная информация о clientId: http://illegalargumentexception.blogspot.com/2009/02/jsf- работоспособного с-компонентной-ids.html – McDowell 2009-04-15 19:28:13
Для большинства страниц, содержащих представление, форму и некоторые компоненты, идентификатор клиента будет разделяемой колонкой, содержащей идентификатор формы и идентификатор компонента. Пример:
Входной текст идентификатор клиента будет "MyForm: myInputText".Если у вас есть вложенные в подвид, то это будет первое, что в списке, например:
Теперь ввод текста идентификатор клиента будет «mySubview: Myform: myInputText».
- 1. Сбросить поля формы JSF
- 2. выбрать конкретное имя поля ввода конкретной формы
- 3. icloud.com как формы поля ввода
- 4. Как создать динамические поля формы JSF
- 5. Изменение поля ввода формы
- 6. имя формы ввода вызывает ошибки
- 7. Как сделать верхний регистр поля ввода ввода JSF на размытие
- 8. Динамические поля на JSF
- 9. Как Symfony генерирует id/name для поля формы?
- 10. Коллекция zend-формы не генерирует правильное имя
- 11. Сброс формы ввода в JSF-странице
- 12. Beego: Показать авторизовался имя пользователя берется из поля ввода формы
- 13. jsf poll update очищает поля ввода
- 14. Взаимоисключающие поля ввода с JSF и PrimeFaces
- 15. FOSUserBundle сменить имя поля формы поля
- 16. Значение поля ввода формы формы перед отправкой
- 17. Упакованные вместе поля ввода формы
- 18. Добавление формы поля ввода динамически
- 19. Имя поля ввода изменения Javascript в php
- 20. имя доступа ввода от весовой формы валидатор
- 21. Как использовать имя поля ввода в рельсах?
- 22. Флажки ввода формы, отображаемые как текстовые поля
- 23. Как очистить поля ввода после отправки формы
- 24. Переопределить имя поля формы Django
- 25. Определить идентификатор формы контейнера JSF
- 26. чтения имя формы ввода элемента через $ _FILES
- 27. jQuery div или имя поля ввода
- 28. Получите значение поля ввода, без формы?
- 29. Найти имя ввода формы динамически созданного автозаполнения
- 30. JSF порядок обработки ввода
Хотя если бы это было приложение портлета или какой-либо другой контейнер с именами, это могло бы быть чем-то вроде «id12432133: searchForm: searchField» – McDowell 2008-11-05 15:53:21