Wie schreibe ich tag in mein Frühlingsprojekt?

8

Ich möchte mein Tag (extends TagSupport ) in mein Springframework schreiben. In meiner Tag-Klasse wird ein Dienst verwendet, der automatisch bis zum Frühjahr injizieren sollte. Aber ich bekomme immer Null, scheint Frühling kann Service-Instanz in meine Tag-Klasse nicht injizieren.

Der Code ist wie folgt:

%Vor%

taskService ist immer Null.

Wie kann ich das beheben? Danke.

    
Tom 13.10.2010, 14:44
quelle

7 Antworten

4

JSP-Tag-Objekte werden nicht von Spring verwaltet, sie werden vom Servlet-Container verwaltet. Daher können Sie Ihre Tags nicht automatisch in Ihre Tags einfügen.

Wenn Sie Beans aus dem Spring appcontext abrufen müssen, muss Ihr Spring MVC-Controller die Bean als Anforderungsattribut setzen (mit request.setAttribute() ), damit das Tag-Objekt es erreichen kann.

    
skaffman 14.10.2010, 11:08
quelle
15

Probieren Sie es aus, indem Sie RequestContextAwareTag verwenden. Es bietet Ihnen Methoden, RequestContext und dann WebApplicationContext zu erhalten. Schauen Sie sich hier .

    
Steinway Wu 15.06.2011 09:03
quelle
1
___ qstnhdr ___ Wie schreibe ich tag in mein Frühlingsprojekt? ___ answer3962483 ___

Sehen Sie sich diese Federpakete in der Frühjahrsdokumentation und in der Quelle an:

  • org.springframework.web.servlet.tags
  • org.springframework.web.servlet.tags.form
  • Wenn nichts anderes, zeigen Ihnen diese, wie die Feder-Entwickler die Spring-Tags geschrieben haben.

        
    ___ answer3932495 ___

    JSP-Tag-Objekte werden nicht von Spring verwaltet, sie werden vom Servlet-Container verwaltet. Daher können Sie Ihre Tags nicht automatisch in Ihre Tags einfügen.

    Wenn Sie Beans aus dem Spring appcontext abrufen müssen, muss Ihr Spring MVC-Controller die Bean als Anforderungsattribut setzen (mit @Configurable ), damit das Tag-Objekt es erreichen kann.

        
    ___ answer13957678 ___

    Was Sie tun könnten, ist eine statische Methode wie folgt zu erstellen:

    %Vor%

    und dann für Ihr Tag könnten Sie

    tun %Vor%

    Der offensichtliche Nachteil dieses Ansatzes ist, dass Sie dies für jeden Konstruktor tun müssen, aber da <context:component-scan base-package="your.webapp"> nur einen hat, sollte das kein Problem sein. Sie können sogar noch einen Schritt weiter gehen und eine Helper-Superklasse erstellen, die immer Autowiring garantiert:

    %Vor%

    Der Rest ist so einfach wie das Erweitern Ihrer Klassen von %code% .

        
    ___ answer43653818 ___

    Verwenden Sie: -

    %Vor%     
    ___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123spring ___ Das Spring Framework ist ein Open-Source-Framework für die Anwendungsentwicklung auf der Java-Plattform. Im Mittelpunkt steht die umfassende Unterstützung von komponentenbasierten Architekturen, und es verfügt derzeit über ein Dutzend hochintegrierter Module. ___ tag123jsp ___ JSP (JavaServer Pages) ist eine Java-basierte Ansichtstechnologie, die auf dem Server ausgeführt wird, mit der Sie Text in (clientseitige Sprachen wie HTML, CSS, JavaScript usw.) schreiben und mit Backend-Java-Code interagieren können. ___ answer16240595 ___

    Zuerst schreibe ich das:

    %Vor%

    Und Verwendung:

    %Vor%

    Es ist Arbeit. Aber als habe ich folgendes gefunden: Von Spring unterstützte Tag-Bibliotheken . Wahrheit in meinem Projekt benutze ich immer noch eigene Lösung.

        
    ___ tag123springmvc ___ Ein Framework zum Erstellen von Java-Webanwendungen basierend auf dem Model-View-Controller (MVC) -Muster. Es fördert flexiblen und entkoppelten Code von den zugrunde liegenden Ansichtstechnologien. ___ tag123jsptags ___ JSP-Tags sind eine Funktion von Java Server Pages, die die Kapselung von sichtspezifischer Logik und die Trennung von Präsentations- und Geschäftsanforderungen ermöglichen. ___ answer6355371 ___

    Probieren Sie es aus, indem Sie %code% verwenden. Es bietet Ihnen Methoden, RequestContext und dann WebApplicationContext zu erhalten. Schauen Sie sich hier .

        
    ___ antwort5002863 ___

    Notieren Sie Ihre Tag-Implementierung mit %code% und fügen Sie %code% zu Ihrer Spring-Konfiguration hinzu.

        
    ___ qstntxt ___

    Ich möchte mein Tag (extends %code% ) in mein Springframework schreiben. In meiner Tag-Klasse wird ein Dienst verwendet, der automatisch bis zum Frühjahr injizieren sollte. Aber ich bekomme immer Null, scheint Frühling kann Service-Instanz in meine Tag-Klasse nicht injizieren.

    Der Code ist wie folgt:

    %Vor%

    %code% ist immer Null.

    Wie kann ich das beheben? Danke.

        
    ___
    Kai Moritz 15.02.2011 11:07
    quelle
    0

    Sehen Sie sich diese Federpakete in der Frühjahrsdokumentation und in der Quelle an:

  • org.springframework.web.servlet.tags
  • org.springframework.web.servlet.tags.form
  • Wenn nichts anderes, zeigen Ihnen diese, wie die Feder-Entwickler die Spring-Tags geschrieben haben.

        
    DwB 18.10.2010 19:11
    quelle
    0

    Was Sie tun könnten, ist eine statische Methode wie folgt zu erstellen:

    %Vor%

    und dann für Ihr Tag könnten Sie

    tun %Vor%

    Der offensichtliche Nachteil dieses Ansatzes ist, dass Sie dies für jeden Konstruktor tun müssen, aber da TagSupport nur einen hat, sollte das kein Problem sein. Sie können sogar noch einen Schritt weiter gehen und eine Helper-Superklasse erstellen, die immer Autowiring garantiert:

    %Vor%

    Der Rest ist so einfach wie das Erweitern Ihrer Klassen von SpringTagSupport .

        
    mindas 19.12.2012 17:18
    quelle
    0

    Zuerst schreibe ich das:

    %Vor%

    Und Verwendung:

    %Vor%

    Es ist Arbeit. Aber als habe ich folgendes gefunden: Von Spring unterstützte Tag-Bibliotheken . Wahrheit in meinem Projekt benutze ich immer noch eigene Lösung.

        
    msangel 26.04.2013 15:58
    quelle
    0

    Verwenden Sie: -

    %Vor%     
    Nitesh Tripathi 27.04.2017 09:25
    quelle

    Tags und Links