2011-11-17 88 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>