2011-07-21 145 views
0

這是我想要在這裏實現的。
我有一個登錄頁面,它位於 WebContent/login.jsp。這是該應用的初始入口點。現在我需要在這個登錄頁面上顯示一個屬性名稱(我從後端注入myProperies。
我想通過控制器路由此入口點以獲取頁面名稱,但我遇到了pageName屬性的問題總是在JSP返回空還製出 不會被調用,我認爲我的控制器是永遠不會得到callled我使用的網址是:。。?http://localhost:8080/abc/login.html彈簧請求映射

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

那代碼不會編譯。 'System'有一個大寫'S',而sysout行缺少一個';'(分號)。 –

+0

和你的Spring上下文是什麼樣的? –

+0

這只是一個錯字。對不起。我用Syso替換了log.info。代碼編譯正常。 – t0mcat

回答

0

你@RequestMapping值應該只是「/登錄」,而不是「/abc/login.html」,假設你的分發程序Servlet正在尋找「HTML」,你的根目錄爲「ABC」

+0

嗨GriffeyDog,將嘗試您的解決方案。我在日誌中注意到syso語句確實打印了結果。不知道什麼時候發生,因爲我正在嘗試各種組合的。找到應用上下文根的最簡單方法是什麼? – t0mcat

+0

那麼,如果你使用http:// localhost:8080/abc/login.jsp獲得了JSP的罰款,那麼你的上下文根就是/ abc。一般來說,它存在於特定於服務器的文件中(即在Weblogic中,位於weblogic.xml中) – GriffeyDog

+0

這是我的安全配置,它強制回撥到非受保護頁面。 – t0mcat

0

你有沒有考慮使用Spring Security的,而不是對這類事項?這將大大減少您的工作量,並可讓您專注於實際的Web應用程序要求

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

+0

嗨Marcelog,感謝您的答覆。我在我的應用程序中使用Spring Security。只是我想測試一個預登錄控制器。不知道爲什麼它沒有擊中。 – t0mcat

+0

你可以發佈你的web.xml和你的應用程序上下文xml文件嗎?另外,你應該使用一個記錄器,而不是system.out.println,嘗試以這種方式記錄,只是爲了確保你的控制器不叫 – marcelog

+0

嗨marcelog,在調用URL,我得到這個:一個WebGroup /虛擬主機句柄/abc/login.html尚未定義。我在哪裏錯過了鉤子? – t0mcat