Domanda

Quando si utilizza l'URL displaytag sta generando per il paging e l'ordinamento è troppo lungo per IE.

C'è un modo per aggirare questo senza ricorrere a cercapersone esterno e l'ordinamento?

Saluti.

È stato utile?

Soluzione

Speriamo che questo vi aiuterà qualcuno. E se c'è un altro modo, poi fatemi sapere.

Il modo in cui ho saggiato questo è escludendo tutti i parametri sul tag tabella di visualizzazione.

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

Il che significa che l'URL non riempire con i parametri.

Grande, ma come si fa a mantenere una maniglia sulla lista di oggetti che stiamo usando?

Ho fatto questo impostando un attributo sulla richiesta del contesto. E come sto utilizzando il framework Stripes ho fatto questo utilizzando l'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");
    }

E poi è possibile impostare e farli durante tutto il ciclo di vita se la pagina / richiesta.

Altri suggerimenti

stavo affrontando un problema simile in cui url con tutti i campi del modulo sono stati sempre aggiunto alla url durante l'impaginazione e l'ordinamento. Questo è stato risolto identificando tutti i link di paginazione di seguito indicate sia dal titolo unico che si forma (Vai alla pagina) e le HTMLs interne come 'Avanti' 'Prev' ecc forma.

I params javascript nel metodo di seguito vengono spiegati qui 1) head1 / head2 - i nomi delle colonne di ordinamento passati. 2) formName - nome del modulo, 3) masterName - il metodo chiamato nel controller

Ho una logica su una casella di immissione di nome 'strNamesearch' sulla base del quale la mia chiamata al metodo modifiche.

Si noti inoltre, una volta che si esegue questa operazione, non dimenticate di aggiungere excludedParams = "*" sul display: tag table

Ecco il codice:

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();
}

Si tratta di una soluzione e sta lavorando bene per noi. Spero che funzioni anche per te.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top