Pregunta

Cuando se utiliza displaytag la URL está generando para paginación y la clasificación es demasiado largo para IE.

¿Hay una forma de evitar esto sin recurrir a la paginación y la clasificación externa?

Saludos.

¿Fue útil?

Solución

Esperamos que esto ayude a alguien. Y si no hay otra manera, a continuación, hágamelo saber.

La forma en que he regresado esto es mediante la exclusión de todos los parámetros en la etiqueta de la tabla de visualización.

<display:table excludedParams="*"> ... </display:table>

Lo que significa que la URL no llenarse de parámetros.

Muy bien, pero ¿cómo mantener una manija en la lista de objetos que estamos usando?

Hice esto mediante el establecimiento de un atributo de la petición del contexto. Y como yo estoy usando el marco de las rayas Hice esto mediante el uso de la ActionBeanContext.

public class SchemeActionBeanContext extends ActionBeanContext {
    public void setThings(List<Things> things) {    
        getRequest().getSession().setAttribute("stuff", things);
    }

    public List<Things> getThings() {
        return (List<Things>)getRequest().getSession().getAttribute("stuff");
    }

Y entonces se puede establecer y conseguir que a lo largo del ciclo de vida si la página / petición.

Otros consejos

Yo estaba frente a un problema similar donde url con todos los campos del formulario se adjunta a conseguir url durante la paginación y la clasificación. Esto se resolvió mediante la identificación de todos los enlaces de paginación se mencionan a continuación ya sea por el único título que forma (Ir a la página) y las htmls interiores como 'Siguiente' 'Anterior', etc que se forma.

Los parametros de javascript en el método a continuación se explica aquí 1) head1 / head2 - nombres de columna de clasificación pasaron. 2) nomForm - nombre de la forma, 3) masterName - el método llamado en su controlador

Tengo una lógica en un cuadro de entrada llamado 'strNamesearch' sobre la base de los cuales mi llamando cambios de método.

nota también, una vez que se hace esto, no se olvide de añadir excludedParams = "*" en la pantalla: etiqueta de la tabla

Este es el código:

function findAnchorGen(head1,head2,formName,masterName) {
    var formObj = eval("document."+formName);
    var methodName;
    var strSearch = trim(formObj.strNamesearch.value);
    if(strSearch == null || strSearch == '') {
        methodNameP = "fetch"+masterName;
    } else {
        methodNameP = "search"+masterName;
    }
    var anchors = document.links; // your anchor collection   
    var i = anchors.length; 
    while (i--) {
        var a = anchors[i];     
        var aRef = a.href;
        var aTitle = a.title;
        index = aTitle.indexOf("Go to page");
        var inHtml = a.innerHTML;

        if(index >= 0 || inHtml == 'Last' || inHtml == 'Next' || inHtml == 'First' || inHtml == 'Prev' || inHtml == head1 || inHtml == head2) {
            //alert("Ref = " + aRef + " | title = " + aTitle + " | inner html = " + a.innerHTML);
            a.href="#";
            a.onclick = (function(aRef,formName,methodNameP){return function(){fSubmit(aRef,formName,methodNameP);}})(aRef,formName,methodNameP);
        }
    } 
}

function fSubmitGen(aRef,formName,methodNameP) {
    var formObj = eval("document."+formName);
    formObj.action = aRef;
    formObj.method.value = methodNameP;
    formObj.submit();
}

Esta es una solución y está trabajando bien para nosotros. Espero que funcione para usted también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top