java - Spring MVC 项目中的@RequestAttribute 不获取值

标签 java spring spring-mvc spring-annotations

Spring MVC 项目中的

@RequestAttribute 未获取值。

我使用了一个@ModelAttribute。这里 foo 属性被设置为 bar

@ModelAttribute  
void beforeInvokingHandlerMethod(HttpServletRequest request) 
{  
    request.setAttribute("foo", "bar");  
}

我尝试使用 @RequestAttribute("foo") 调用 foo 的请求属性值。但是值为空。

然后我尝试使用 request.getAttribute("foo") 并打印值。我不知道以下代码有什么问题:

@RequestAttribute("foo"). 
@RequestMapping(value="/data/custom", method=RequestMethod.GET)  
public @ResponseBody String custom(@RequestAttribute("foo") String foo, HttpServletRequest request) {  
    System.out.println("foo value : " + foo);    //null printed  
    System.out.println("request.getAttribute : " + request.getAttribute("foo"));    //value printed  

    return foo;  
}

最佳答案

@RequestAttribute 不是 Spring 注释。如果你想传递一个值,你可以做一个请求参数

@RequestMapping(value="/data/custom", method=RequestMethod.GET)  
public @ResponseBody String custom(@RequestParam("foo") String foo) {  
    System.out.println("foo value : " + foo);    //null printed      
    return foo;  
}

或者如果你想在你可以做的路径中传递值

@RequestMapping(value="/data/custom/{foo}", method=RequestMethod.GET)  
public @ResponseBody String custom(@PathVariable("foo") String foo) {  
    System.out.println("foo value : " + foo);    //null printed      
    return foo;  
}

关于java - Spring MVC 项目中的@RequestAttribute 不获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15787602/

相关文章:

java - Maven 错误 - 预期的 START_TAG 或 END_TAG 不是 TEXT

java - 尝试 Autowiring 使用 Morphia 和 MongoDB 的类时,spring bean 配置出错

java - 文本选择在 vaadin 应用程序内的 iframe 中不起作用

java - 使用服务帐号访问具有外部数据源的 BigQuery 表

java - 使用静态构造函数进行 Spring 依赖注入(inject)

java - 如何限制 @Primary Bean 的上下文?

java - spring:从 Controller 返回 JSON 作为 ModelAndVIew

java - 将 Velocity 与 Tiles 和 Spring 结合使用

java - Downloader.downloadFile(urls) - 这条线在做什么,以及 Java 中的泛型

java - 自定义 map 收集器