Wir verwenden das tomcat urlrewrite-Plugin, um ausgehende und eingehende URLs neu zu schreiben. Um dies zu tun, müssen Sie das JSTL-Tag verwenden.
Das funktioniert hervorragend für saubere URLs und i18n, aber es erzeugt hässlichen Code, einschließlich Tags innerhalb von Tags, wie folgt:
%Vor%oder:
%Vor%Eine Alternative besteht darin, eine Variable wie folgt zu verwenden:
%Vor%Das ist wirklich sauber, aber ausführlich.
Gibt es eine Ausdruck-freundliche Art, dies zu tun?
Ich habe irgendwie auf etwas wie:
gehofft %Vor%Danke.
Die Lösung, die ich schließlich gefunden habe, war die Verwendung von benutzerdefinierten Tags, um das Problem für CSS und JS zu lösen. Eine ähnliche Lösung könnte natürlich auch auf Tags angewendet werden, obwohl ich die Notwendigkeit noch nicht hatte.
%Vor%Das CSS-Tag sieht so aus, das Javascript ist offensichtlich sehr ähnlich:
%Vor%Vergessen Sie nicht, die Tags in Ihr jsp zu importieren:
%Vor%Die benutzerdefinierte EL-Lösung wäre sauberer, wenn einige Umstände hinzugefügt würden. Wenn Sie jedoch Unterstützung für zusätzliche Parameter oder Attribute hinzufügen möchten, ist wahrscheinlich ein Tag der richtige Weg.
Es gibt nichts aus der Box, aber nichts hindert Sie daran, Ihre eigenen EL-Funktionen zu schreiben und verwenden Sie so etwas:
%Vor%Ich glaube nicht, dass es lesbarer ist als das Standard-Tag c: url, und es wäre noch schlimmer, wenn es Parameternamen und -werte akzeptieren müsste.
Siehe Ссылка zum Definieren und Verwenden von EL-Funktionen.
Wo sind mehrere Ansätze.
1) Binden Sie die Basis an die Variable in einem gemeinsamen Fragment :
common.jspf
:
oder wie:
%Vor%und enthalten ein Fragment auf jeder Seite :
%Vor% 2) Verwenden Sie ${pageContext.request.contextPath}
everywhere:
3) ist mein Favorit: Filter hinzufügen, die die Basis für das Attribut enthalten:
/src/java/company/project/web/filter/BaseFilter.java
und registrieren diesen Filter in web.xml
:
und verwenden Sie die cleane Syntax (wie oben, aber ohne die Pflichtfelderfragmente einzubeziehen):
%Vor%HINWEIS Ich setze zusätzliche Attribute in diesem Filter, um beispielsweise zwischen der Entwicklung und der verkleinerten Version von CSS / JS zu wechseln:
%Vor%und entsprechender JSP-Code:
%Vor% Der Initialparameter min
kann extern in der WAR-Datei im contex-Deployment-Deskriptor auf dev
oder min
gesetzt werden, wenn er nicht auf die verkleinerte Version zurückgesetzt wird, wenn er nicht gesetzt ist.
4) Verwenden Sie Skripte :
%Vor%