2011-07-21 4 views
0

C'est ce que j'essaie de réaliser ici.
J'ai une page de connexion qui se trouve sous WebContent/login.jsp. C'est le point d'entrée initial de l'application. Maintenant j'ai besoin d'afficher un nom d'attribut sur cette page de connexion (que j'obtiens du backend en injectant myProperies.)
J'ai pensé à router ce point d'entrée via un contrôleur afin d'obtenir le nom de la page mais je suis confronté à un problème où l'attribut pageName retour toujours vide JSP également le système sur ne sera jamais appelé, je pense que mon contrôleur ne se callled URL J'utilise est:..? http://localhost:8080/abc/login.htmlSpring Request Mapping

package com.abc.xyz; 

import javax.annotation.Resource; 

import org.apache.log4j.Logger; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.ModelMap; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 

import com.abc.xyx.prop.MyProperties; 

@Controller 
public class PreLoginController { 

    @Resource 
    private MyProperties myProperties; 

    @RequestMapping(value = "/abc/login.html", method = RequestMethod.GET) 
    public String getMyLoginPage(ModelMap model){ 

     String pageName = myProperties.getMyPageName(); 
     model.addAttribute("page", pageName); 

     System.out.println("my page name is: " + pageName); 

     return "login"; 
    } 

} 
+0

Ce le code ne compilera pas. 'System' a une majuscule' S', et la ligne sysout manque un ';' (point-virgule). –

+0

et à quoi ressemble votre contexte de printemps? –

+0

C'est juste une faute de frappe. Je suis désolé. J'ai remplacé log.info par Syso. Le code compile bien. – t0mcat

Répondre

0

Votre valeur @RequestMapping doit juste être «/login » au lieu de « /abc/login.html », en supposant que votre servlet répartiteur recherche « html » et la racine de votre contexte est « abc »

+0

Bonjour GriffeyDog, je vais essayer votre solution. J'ai remarqué dans les journaux que la déclaration syso a imprimé les résultats. Je ne sais pas quand cela s'est passé car j'essayais toutes sortes de combos. Quel est le moyen le plus simple de trouver la racine de contexte d'une application? – t0mcat

+0

Eh bien, si vous êtes arrivé au JSP avec http: // localhost: 8080/abc/login.jsp, votre racine de contexte est en effet/abc. Généralement, il se trouve dans un fichier spécifique au serveur (c'est-à-dire sur Weblogic dans weblogic.xml) – GriffeyDog

+0

C'était ma configuration de sécurité qui forçait l'appel à revenir aux pages non sécurisées. – t0mcat

0

avez-vous envisagé d'utiliser la sécurité du printemps à la place pour ce genre de questions Cela réduira considérablement vos efforts et vous permettra de vous concentrer sur les exigences réelles de la webapp

http://static.springsource.org/spring-security/site/tutorial.html

+0

Salut Marcelog, Merci pour la réponse. J'utilise Spring Security dans mon application. Juste que je voulais tester un contrôleur de pré-connexion. Je ne sais pas pourquoi il ne frappe pas. – t0mcat

+0

pourriez-vous poster votre web.xml et votre fichier XML de contexte d'application? aussi, vous devriez utiliser un logger au lieu de system.out.println, essayez de vous connecter de cette façon juste pour être sûr que votre contrôleur n'est pas appelé – marcelog

+0

Salut marcelog, En invoquant l'URL, je reçois ceci: Un WebGroup/Virtual Host à handle /abc/login.html n'a pas été défini. Où suis-je raté le crochet? – t0mcat