Das Routing auf der letzten Meile übernimmt der Controller

Maßgeblich ist das Zustand-Übergang-Modell für die Qualifikation einer Route

Wie ​bereits ​an ​einer ​anderen ​Stelle ​festgestellt, ​bleibt ​die ​Klassenbindung ​erhalten ​auch ​dann ​wenn ​der ​Request ​Parameter ​enthält. ​Es ​können ​sich ​jedoch ​Verzweigungen ​ergeben, ​welche ​über ​eine ​Parameter-Kontrollstruktur ​geregelt ​sind. ​Maßgeblich ​hierzu ​ ​ist ​der ​Aufruf ​der ​Interface-Methode ​control() ​immer ​dann, ​wenn ​im ​Request ​Parameter ​gesendet ​wurden.

Für ​die ​Darstellung ​dieser ​Seite ​ist ​z.B. ​der ​Parameter ​show=20 ​zuständig. ​Ist ​dieser ​Parameter ​im ​Request, ​wird ​die ​Methode ​control() ​aufgerufen ​und ​im ​entsprechenden ​Zweig ​erfolgt ​dann ​die ​Prüfung:

 ​ ​ ​ ​elsif(my ​$shownr ​= ​$self->param('show')){
 ​ ​ ​ ​ ​ ​ ​ ​my ​$hunt ​= ​$self->{DAL}->checkout($shownr) ​||
 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​return ​$self->errmsg('Eintrag ​nicht ​vorhanden', ​$self->{URL}); ​
 ​ ​ ​ ​ ​ ​ ​ ​$self->eav('title', ​$self->ents($hunt->{title}));
 ​ ​ ​ ​ ​ ​ ​ ​$self->eav('descr', ​$self->ents($hunt->{descr}));
 ​ ​ ​ ​ ​ ​ ​ ​$self->{STASH}{descr} ​= ​$self->ents($hunt->{descr});
 ​ ​ ​ ​ ​ ​ ​ ​$self->{STASH}{zbody_orig} ​= ​$hunt->{body};
 ​ ​ ​ ​ ​ ​ ​ ​$self->{STASH}{show} ​= ​1;
 ​ ​ ​ ​ ​ ​ ​ ​$self->eav('parent', ​$self->{URL});
 ​ ​ ​ ​}
 ​ ​ ​ ​elsif( ​$self->param('xml')){
 ​ ​ ​ ​ ​ ​ ​ ​my ​@entities ​= ​$self->{DAL}->count;
 ​ ​ ​ ​ ​ ​ ​ ​my ​%h ​= ​();
 ​ ​ ​ ​ ​ ​ ​ ​foreach ​my ​$e ​(@entities){
 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​$h{"$self->{URL}?show=$e"} ​= ​1;
 ​ ​ ​ ​ ​ ​ ​ ​} ​ ​ ​
 ​ ​ ​ ​ ​ ​ ​ ​$self->sitemap(\%h);
 ​ ​ ​ ​}
 ​ ​ ​ ​else{
 ​ ​ ​ ​ ​ ​ ​ ​return ​$self->errmsg('Unbekannter ​Parameter', ​$self->{URL});
 ​ ​ ​ ​}


Zum ​Ausliefern ​der ​Seite ​wird ​der ​textliche ​Inhalt ​in ​einen ​dafür ​vorgesehenen ​Platzhalter ​ins ​Template ​gesetzt. ​Andere ​Parameter ​wiederum ​regeln ​das ​Speichern ​oder ​den ​Einbau ​eines ​Formulars ​zum ​Bearbeiten ​von ​Inhalten.

So ​ergibt ​sich ​mit ​dem ​Parameter ​xml=1 ​wiederum ​ein ​anderer ​Zustand ​derart, ​dass ​nicht ​HTML ​sondern ​XML ​ausgeliefert ​wird.


Anbieter: nmq​rstx-18­@yahoo.de, die Seite verwendet funktionsbedingt einen Session-Cookie und ist Bestandteil meines nach modernen Aspekten in Perl entwickelten Frameworks.