Frage

Bei der Verwendung von displaytag der URL es des Erzeugungs für Paging und Sortieren zu lang für den IE.

Gibt es eine Möglichkeit, um diesen ohne auf externes Paging greifen und Sortieren?

Prost.

War es hilfreich?

Lösung

Dies wird hoffentlich jemand helfen. Und wenn es auch anders geht, dann lassen Sie es mich wissen.

So wie ich diese Runde bekommen haben ist durch alle Parameter auf dem Display Tabellentag auszuschließen.

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

Welche die URL bedeutet nicht mit Parametern füllen.

Großartig, aber wie halten Sie einen Griff auf der Liste der Objekte, die wir verwenden?

Ich tat dies, indem Sie auf den Kontext der Anforderung ein Attribut festlegen. Und als ich den Streifen Rahmen bin mit tat ich dies durch die ActionBeanContext verwendet wird.

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

Und dann können Sie einstellen und erhalten sie während des gesamten Lebenszyklus, wenn die Seite / Anfrage.

Andere Tipps

Ich war mit Blick auf ein ähnliches Problem, bei dem URL mit allen Formularfeldern wurden während Paginierung URL angehängt zu werden und zu sortieren. Dies wurde durch die Identifizierung alle die Paginierung Links unten entweder durch den einzigartigen Titel erwähnt beschlossen, dass es bildet (Gehe zu Seite) und die inneren htmls wie ‚Next‘ ‚Zurück‘ usw. bildet.

Die Javascript params in dem folgenden Verfahren werden hier erklärt 1) head1 / head2 - Sortierspaltennamen übergeben. 2) formname - Name der Form, 3) Mastername - die Methode aufgerufen in Ihrem Controller

Ich habe eine Logik auf einem Eingabefeld mit dem Namen ‚strNamesearch‘ auf der Grundlage von denen mein Aufruf der Methode ändert.

Auch beachten Sie, wenn Sie dies tun, vergessen Sie nicht excludedParams hinzufügen = "*" in display: table-Tag

Hier ist der Code:

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

Dies ist eine Abhilfe und arbeitet gut für uns. Ich hoffe, dass es für Sie funktioniert auch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top