2009-04-24 10 views
0

ich brauche, um zu bestimmen, ob ein Bild in einem JSP-Tag vorhanden ist, damit ich eine Standard anzeigen kann, wenn es nicht existiert. Was ist der beste Weg, um auf den War-Stamm zuzugreifen, damit ich prüfen kann, ob das Bild existiert? Oder gibt es eine bessere Lösung?Wie greife ich auf den Stamm eines WAR zu?

Antwort

1

Die ServletContext Methode getResource für Funktionen wie diese verwendet werden können. Wenn die Ressource (das Bild) nicht existiert, gibt diese Methode null zurück. In diesem Fall kann ein Standardbild angezeigt werden.

Beachten Sie, dass die URL diese Methode ist nicht die URL als „src“ -Attribut zu verwenden, in einem <img>-Tag. Es ist sehr wahrscheinlich eine file: oder jar: Protokoll URL, die keinen Sinn auf einem anderen Host machen würde. In dieser Anwendung wird nur getestet, ob es null ist, und nicht tatsächlich von der JSP.

+0

Das einzige Problem ist, dass der Web-Framework verwenden wir gezwungen sind, den Zugriff auf den ServletContext versteckt. – Joshua

+0

Wirklich? Welcher Rahmen? Sinnvolle Frameworks bieten weiterhin Zugriff auf Anwendungs-, Sitzungs- und Anforderungsbereiche, indem sie in eine Art Abstraktion eingebettet werden. Es gibt Kludges, die Sie tun können, wenn Ihr Framework wirklich so begrenzt ist. – erickson

+0

Beachten Sie das Wort "gezwungen". Sensible Frameworks werden den Entwicklern nicht aufgezwungen. Entwickler wählen sie, weil sie vernünftig sind. – Joshua

1

Beachten Sie auch, gibt es keine Garantie, dass der Web-Container WAR-Datei ist explodiert, so dass Sie auf dem Dateisystem spähen vermeiden sollten.

Wäre es eine Option sein, die Liste der verfügbaren Bilder bei Bereitstellungszeit zu generieren?

+0

Das Endziel ist nur zu sehen, ob ein Bild existiert, ansonsten wird ein Standard angezeigt, damit das funktioniert. – Joshua

Verwandte Themen