弹簧请求映射

问题描述:

这是我想要在这里实现的。
我有一个登录页面,它位于 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

你@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

你有没有考虑使用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