DataTable с динамическими столбцами

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

Число столбцов (а также количество строк) является динамичным, загружается из базы данных, прежде чем страница будет представлена.

Со следующим я получаю два статических столбца с соответствующим количеством строк, как я ожидал бы:


    
        
            
        
        
    
    
        
            
        
        
    

Что я хотел сделать, должен был добавить a вокруг единственного набора ... теги, для итерации по числу столбцов но это не работало - я попробовал множество комбинаций, но я ожидал, что что-то вроде этого будет работать:


    
        
            
                
            
            
        
    

От поиска с помощью Google я прочитал различные неопределенные комментарии как, 'это не способ сделать это', но я не смог найти любые особенно востребованные примеры правильного пути. Кто-то упомянул, что создал DataTable в отступающем бобе, но единственный пример которого я мог найти, был http://forums.sun.com/thread.jspa?threadID=577589. Это работало, но чувствовало себя довольно неуклюжим, тем более, что некоторые используемые методы удерживаются от использования.

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

15
задан DaveyDaveDave 1 June 2010 в 17:01
поделиться

1 ответ

JSTL и JSF не работают синхронно, как можно было бы ожидать от кода. Более того, JSTL сначала обрабатывает всю страницу сверху вниз, а затем передает результат в JSF для дальнейшей обработки. # {row} недоступен в то время, когда JSTL занят, поэтому ваша попытка действительно не сработает.

В связанной теме действительно упоминаются устаревшие методы, но тема также устарела и обсуждает устаревший JSF 1.0 / 1.1. Если вы изучите текущую документацию Javadocs по упомянутым методам, вы увидите, что, как обычно, упоминаются методы замены. Например, Application # createValueBinding () упоминает следующее:

Не рекомендуется . Это было заменено вызовом getExpressionFactory () , затем ExpressionFactory.createValueExpression (javax.el.ELContext, java.lang.String, java.lang.Class) .

Вы можете найти некоторые конкретные примеры динамического заполнения данных таким образом в этой статье .

Что касается сторонних библиотек компонентов, RichFaces имеет компонент rich: columns , который разработан именно для этой цели.

12
ответ дан 1 December 2019 в 04:46
поделиться
Другие вопросы по тегам:

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