Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > displaytag сортировка


Автор: Vassik 11.5.2007, 23:48
Привет все)
А никто не пробовал используя displaytag сортировку замутить? В jsp делаю так
Код

<display:table name="lecturerCollection">
        <display:column href="getlecturerinfo.do" paramId="urlParamBean" paramProperty="id" property="name" />
        <display:column sortable="true" property="degree" />
</display:table>

т.е когда на название столбца нажиаю, он по идеи содержание должен отсортировать, но в место отсортированной таблици появляется "Nothing found to display." Коллекцию я свою храню в ArrayList и получаю следующим образом:
Код

ArrayList lecturersList = new ArrayList(); 
Connection conn = dataSource.getConnection();
LecturerDAO lDAO=DAOFactory.createLecturerDAO(conn);
lecturersList=lDAO.getLecturers();
req.setAttribute("lecturerCollection",lecturersList);

вот классы и интерфес которые я юзаю
Код

public interface LecturerDAO{
  public ArrayList getLecturers() throws SQLException;
  public ArrayList getLecturerById(int id);
  }


Код

public class DAOFactory {
    
    /** Creates a new instance of DAOFactory */
    public DAOFactory() {
    }
    public static LecturerDAO createLecturerDAO(Connection connection){
        return new DerbyLecturerDAO(connection);
    }
    
}


Код

public class DerbyLecturerDAO implements LecturerDAO {
    private Connection connection;
    private Statement stm;
    private Vector vctDL=new Vector();
    /** Creates a new instance of DerbyUserDAO */
    public DerbyLecturerDAO(Connection connection) {
        this.connection = connection;
    }

    public ArrayList getLecturers() throws SQLException{
        ArrayList lecturersList = new ArrayList();
        try {
            stm=connection.createStatement();
            ResultSet rsm=stm.executeQuery("SELECT LECT_ID,LECT_SNAME,LECT_NAME,LECT_FNAME,LECT_DEGREE FROM LECTURER");
            while(rsm.next()){
               DataLecturer lEn=new DataLecturer(rsm.getInt(1),rsm.getString(2),rsm.getString(3),rsm.getString(4),rsm.getString(5));
               LecturerEnumBean buf=new LecturerEnumBean();
               buf.setId(lEn.getIdLecturer());
               buf.setName(lEn.concNS(lEn.getSnameLecturer(),lEn.getFnameLecturer(),lEn.getNameLecturer()));
               buf.setDegree(lEn.getDegreeLecturer());
               lecturersList.add(buf);
               vctDL.add(lEn);
               };
            rsm.close();
        } catch (SQLException ex) {
            throw ex;
        }     

        return lecturersList;
    }

    public ArrayList getLecturerById(int id) {
        return null;
    }

}


Код

public class LecturerEnumBean {
    private int id=0;
    private String name=null;
    private String degree=null;
    public int getId(){
        return this.id;
    }
    public void setId(int id){
        this.id=id;
    }
    public String getName(){
        return this.name;
    }
    public String getDegree(){
        return this.degree;
    }
    public void setName(String name){
        this.name=name;
    }
    public void setDegree(String degree){
        this.degree=degree;
    }
}


Может кто сталкивался с подобной проблемой и подскажет в чем причина может быть, почему коллекция пропадает?

Автор: Tony 14.5.2007, 23:49
Ploho 4to kollekciju iz jsp sortiruesh. A 4to za tag display ?

Автор: Enterprise 15.5.2007, 09:13
У меня были те же проблемы с displaytag smile

Автор: Nikola661 29.5.2009, 04:26
Цитата(Vassik @  11.5.2007,  23:48 Найти цитируемый пост)
Может кто сталкивался с подобной проблемой и подскажет в чем причина может быть, почему коллекция пропадает?


Посмотри лежит ли у тебя эта коллекция в request после первого вывода её на jsp. Лучше ложи её в session

Автор: MisterCleric 1.6.2009, 09:40
Здравствуйте всем. Я очень сильно использую эту либу. Очень удобно и однозначно рисуются все таблички со всем желаемым заказчиком функционалом. Даже пришлось кое-что дописывать и править, так как заказчик захотел иметь еще строку фильтрации данной выборки. Собственно  все зависит от того как, какие задачи перед тобой стоят. 
Если все дело идет на продакшен, где будет очень много данных, то  
Цитата

Лучше ложи её в session
 не годится. Да и милионы записей ты не будешь вываливать на страницу-  будешь делать с постраничной разбивкой. Значит надо будет делать так, что бы из базы доставалось количество записей равное указанному размеру страницы. От сюда также следует, что и сортировку надо делать в базе. 

Ну эт так, я наверное, отклонился от самого вопроса.

По поводу твоей коллекции: Я так понимаю ты используешь Struts 
Цитата

href="getlecturerinfo.do"


Значит надо самому <display:table указать урлу, где коллекцию. А то он по умолчанию вешается на твой реквест.
Собственно вот:

http://www.google.com.ua/search?q=displaytag%2Bstruts

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)