2009-05-22 5 views
4

Ich sehe eine Menge von J2EE-Entwickler Etiketten in Property-Dateien, aber nicht verschiedene Locales verwenden. So erhalten Sie viele fehlende Eigenschaftsausnahmen. Und die Hauptsache ist, dass es schwierig ist, eine JSP-Seite zu debuggen und zu lesen. Mit der Zeit haben Sie also Tausende von Zeilen mit Eigenschaftendateien, die möglicherweise mit der JSP-Datei verwendet werden.Ist es ein Anti-Muster, um Etiketten und dergleichen in Property-Dateien zu setzen (related zu JSPs und Web-Entwicklung)

Für mich scheint es wie ein schlechtes Design, vor allem, wenn Sie nicht beabsichtigen, eine Eigenschaftendatei mit verschiedenen Sprachen zu verwenden und ändern Sie Englisch oder Französisch abhängig von Locale.

Ich habe mich nur gefragt, ob Sie das gleiche gefühlt und gibt es eine Liste oder URL von J2EE/JSP Anti-Patterns.

Antwort

1

Es ist definitiv eine gute Praxis, Etiketten in Property-Dateien zu platzieren. Selbst wenn Sie nicht planen, jetzt zu internationalisieren, kann dies in Zukunft passieren. Es hilft Ihnen auch, eine konsistente Benennung auf Ihren Seiten zu verwenden.

Ich weiß nicht, warum Sie Eigentum Ausnahmen erhalten. In den meisten Frameworks liest das System die Standarddatei (Englisch), wenn keine Eigenschaftendatei für das Gebietsschema des Benutzers gefunden wird.

Sie müssen sich beim Lesen von JSP-Seiten mit Feldern auslesen, die aus einer externen Eigenschaftendatei gelesen werden. Es ist nicht so schwer und die Vorteile die Mühe weit übergewichtig.

3

Trennung von Inhalt von Vorlage ist immer eine gute Übung. Auf diese Weise müssen Sie das Ganze nicht für jede dumme kontextabhängige Änderung/jeden Tipp/Schluckauf neu erstellen, neu bereitstellen und/oder neu starten. Die API ResourceBundle (die standardmäßig hinter JSTLs fmt taglib und anderen Taglibs i18n/l10n verwendet wird) ist smart genug, um Ressourcendateien dynamisch bei jeder Änderung neu zu laden (zumindest wenn Sie JDK 1.6 oder neuer verwenden, das those enhancements builtin hat).

Auch wenn Sie i18n gehen oder von einer Eigenschaftendatei in eine Datenbanktabelle oder etwas anderes ändern möchten, müssen Sie die Vorlage nicht ändern, um den Inhalt daraus zu extrahieren - was Sie sehr beißen würde mehr, wenn Sie es danach tun.

Es ist nur ein bisschen Arbeit, den Inhalt und die Position in der Vorlage miteinander zu korrelieren, ich kann mir vorstellen, dass dies die größte Angst unter den Entwicklern/Betreuern ist. Ich selbst komponiere Tasten, so dass sie ungefähr pagename.parentid.elementtype.elementname.contenttype entsprechen (ungefähr; nicht alle sind notwendig, aber es gibt eine Idee), so dass es sofort klar ist, wo es hingehört.

z. ein home.login.label.username.tooltip Schlüssel, der mit zu einem home.jsp-Punkte:

<form id="login"> 
    <label for="username" title="${text['home.login.label.username.tooltip']}"> 

diese Konvention konsequent halten und Sie werden feststellen, dass es einfacher wird dies alles zu halten.