2011-11-17 91 views
2

我有一個Java代碼,它是一個jsp頁面的控制器,名爲:HomeController.java。代碼如下:Tomcat沒有拿到類文件 - 沒有顯示JSP文件

@Controller 
public class HomeController { 

    protected final transient Log log = LogFactory.getLog(getClass()); 

    @RequestMapping(value = "/mypage") 
    public String home() { 
     System.out.println("HomeController: Passing through..."); 
     return "home"; 
    } 
} 

沒有什麼特別的jsp頁面:home.jsp。如果我去這個網址:

http://localhost:8080/adcopyqueue/mypage

我可以查看我的空間,一切工作正常。同樣在tomcat Dos頁面中,我可以看到評論:

HomeController: Passing through... 

正如所料。

現在在我有HomeController.java的同一目錄下,我創建了另一個名爲LoginController.java的文件。以下是代碼:

@Controller 
public class LoginController { 

    protected final transient Log log = LogFactory.getLog(getClass()); 

    @RequestMapping(value = "/loginpage") 
    public String login() { 
     System.out.println("LoginController: Passing through...");   
     return "login"; 
    } 
} 

而在我有home.jsp的同一個地方,我創建了login.jsp。

同樣在tomcat文件夾下,LoginController.class存在於HomeController.class所在的同一文件夾下,而login.jsp存在於home.jsp所在的同一文件夾下。

但是,當我去這個網址:顯示http://localhost:8080/adcopyqueue/loginpage

什麼也沒有!我認爲Tomcat不拿起LoginController.class B/C tomcat的DOS窗口,我沒有看到這個評論:

LoginController: Passing through... 

相反,我看到下面,我不知道它們意味着什麼?

[ INFO] [http-8080-1 01:43:45] (AppInfo.java:populateAppInfo:34) got manifest 
[ INFO] [http-8080-1 01:43:45] (AppInfo.java:populateAppInfo:36) manifest entrie 
s 8 

HomeController.java和LoginController.java的結構和代碼加上jsp文件匹配。我不知道爲什麼tomcat會看到其中一個文件,而不是其他文件?

乾淨的構建沒有幫助。有人有任何想法嗎?任何幫助是極大的讚賞。

這是web.xml中的一部分:配置文件:

<servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/app/*</url-pattern>    </servlet-mapping> <filter-mapping> <filter-name>rewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> – 

剛發現: 我修改方法的返回值的LoginController來自:

@RequestMapping(value = "/login") 

爲以下幾點:

@RequestMapping(value = "/myLastName") 

它只是工作!如預期的網頁看到,並在Tomcat中DOS窗口,現在我看到這樣的評論:

的LoginController:穿境而過......

我做之前懷疑的命名,並用「登錄」,「loginpage曾試圖「和」loginpage1「,都沒有工作!不知道爲什麼會發生!它在任何名稱中都帶有「登錄」字樣的問題!最終,它應該與「登錄」雖然工作!我只注意到

一兩件事: 的的LoginController將不工作,只要值=「/,與登錄開頭的名字」

因此,對於前。登錄,登錄頁面...將不起作用。但是,pagelogin起作用,這意味着該名稱不應以單詞:login開頭。

+0

你可以張貼在web.xml中任何相關的片段? – srkavin

+0

這裏是web.xml中,如果它雖然幫助不知道... \t \t \t \t /應用/ * \t \t <濾波器映射> rewriteFilter /* blueSky

+0

\t \t spring \t \t /應用/ * \t \t <濾波器映射> rewriteFilter /* blueSky

回答

0

好吧,這是原因......我的經理回答...也許這可以幫助人在未來:-)

在urlrewrite.xml,有對設置的規則:

<!-- Add rules here for anything that shouldn't be served up by Spring MVC. --> 

因此,我們評論如下行跳過規則:

<rule> 
    <from>/login*</from> 
    <to>/login.jsp</to> 
</rule> 
<rule> 
    <from>/logout*</from> 
    <to>/logout.jsp</to> 
</rule>