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 originalpublic ParamEncoder
(String idAttribute
) {
// use name and id to get the unique identifier
String stringIdentifier
= "x-" + idAttribute
; //$NON-NLS-1$
// get the array
char[] charArray = stringIdentifier.toCharArray();
// calculate a simple checksum-like value
int checkSum = 17;
for (int j = 0; j < charArray.length; j++)
{
checkSum = 3 * checkSum + charArray[j];
}
// keep it positive
checkSum &= 0x7fffff;
// this is the full identifier used for all the parameters
this.parameterIdentifier = "d-" + checkSum + "-"; //$NON-NLS-1$ //$NON-NLS-2$
}
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