Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/10/2014, 09:03
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 4 meses
Puntos: 182
Respuesta: Token generado por el DisplayTag

Buenas,

Tienes razon, efectivamente el link de ordenacion header de la tabla no se puede configurar, ya que es un dato interno y si se cambia la ordenacion dejara de funcionar.

Para ver como funciona bajate el codigo fuente:
http://sourceforge.net/projects/disp...c.zip/download

Y mira en la clase src/main/java/org/displaytag/render/HtmlTableWriter.java
En dicha clase puedes ver como construye la estructura de la tabla y como genera el identificador para ordenar (metodo getSortingHref).
Si tienes curiosidad, al final llama a una utilidad llamada ParamEncoder que genera asi el identificador:

Código Java:
Ver original
  1. public ParamEncoder(String idAttribute)
  2.     {
  3.         // use name and id to get the unique identifier
  4.         String stringIdentifier = "x-" + idAttribute; //$NON-NLS-1$
  5.  
  6.         // get the array
  7.         char[] charArray = stringIdentifier.toCharArray();
  8.  
  9.         // calculate a simple checksum-like value
  10.         int checkSum = 17;
  11.  
  12.         for (int j = 0; j < charArray.length; j++)
  13.         {
  14.             checkSum = 3 * checkSum + charArray[j];
  15.         }
  16.  
  17.         // keep it positive
  18.         checkSum &= 0x7fffff;
  19.  
  20.         // this is the full identifier used for all the parameters
  21.         this.parameterIdentifier = "d-" + checkSum + "-"; //$NON-NLS-1$ //$NON-NLS-2$
  22.     }

En tu caso, a partir del id "persona" genera el checkSum "1340302".

Como bien dices, el basarte en dicho codigo es muy feo.
Sin embargo tambien es cierto que seguramente dicho identificador no va a cambiar, ya que esa libreria no evoluciona desde 2008. De hecho, la verdad es que pensaba que nadie la usaba ya en nuevos desarrollos


Un saludo
__________________
If to err is human, then programmers are the most human of us