我有一个Java代码,它是jsp页面的控制器,名为:HomeController.java。代码如下:
@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没有在tomcat Dos窗口中选择LoginController.class b / c,我没有看到这个评论:
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:config file:
的一部分<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:传递......
之前我确实怀疑过这个命名并尝试了“登录”,“登录页面”和“登录页面1”,但没有一个有效!不知道为什么会发生这种情况!任何带有“登录”字样的名称都有问题!最终它应该与“登录”工作!!!
我刚注意到的另一件事: 只要value =“/任何以login登录的名称”
,LoginController就无法工作所以对于前。登录,登录页面,...将无法正常工作。但是,pagelogin有效,这意味着名称不应以单词:login。
开头答案 0 :(得分: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>