`
hy2012_campus
  • 浏览: 30579 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

自定义注解绑定FormModel参数

 
阅读更多

 

/**
 * <p>绑定当前登录的用户</p>
 * <p>不同于@ModelAttribute</p>
 *
 * @author Zhang Kaitao
 */
@Target({ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CurrentUser {

    /**
     * 当前用户在request中的名字
     *
     * @return
     */
    String value() default Constants.CURRENT_USER;

}

 

public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver {

    public CurrentUserMethodArgumentResolver() {
    }

    @Override
    public boolean supportsParameter(MethodParameter parameter) {
        if (parameter.hasParameterAnnotation(CurrentUser.class)) {
            return true;
        }
        return false;
    }

    @Override
    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
        CurrentUser currentUserAnnotation = parameter.getParameterAnnotation(CurrentUser.class);
        return webRequest.getAttribute(currentUserAnnotation.value(), NativeWebRequest.SCOPE_REQUEST);
    }
}

 

@RequestMapping("/")
    public String index(@CurrentUser User loginUser, Model model) {
        Set<String> permissions = userService.findPermissions(loginUser.getUsername());
        List<Resource> menus = resourceService.findMenus(permissions);
        model.addAttribute("menus", menus);
        return "index";
    }

 

来源于http://jinnianshilongnian.iteye.com/整理的代码

分享到:
评论

相关推荐

    spring3mvc如何把checkbox的值绑定到model对象的int数据类型.docx

    在Spring MVC中,将Checkbox的值绑定到Model对象的int数据类型涉及到表单数据的处理、自定义编辑器以及模型绑定。以下是如何实现这个功能的详细步骤和解释: 首先,我们有一个User类,其中包含一些属性,如id、name...

    spring3mvc如何把checkbox的值绑定到model对象的int数据类型.pdf

    总的来说,Spring 3 MVC通过自定义类型转换器和`@InitBinder`注解,使得我们可以轻松地将checkbox的值绑定到model对象的int数据类型,从而简化了表单数据处理的复杂性。这个过程确保了数据的正确性,避免了因为类型...

    一个注解解决页面重复提交

    3. **@ModelAttribute**:这个注解用于将请求参数绑定到方法的参数上。我们可以在控制器方法中添加一个参数,通过这个参数来判断是否是重复请求。例如,可以设置一个临时ID,首次提交时生成并保存,后续请求如果携带...

    ASP.NET MVC框架开发系列课程(27):辅助普通Web应用程序开发(三)——Model Binder

    这些注解不仅帮助Model Binder理解如何正确地绑定数据,还能生成客户端验证规则,提供更好的用户体验。 本课程可能涵盖了一些关键概念,如: 1. Model Binder的基本工作流程和机制。 2. 如何利用内置的Model Binder...

    Spring MVC实战系列教程(2)--常用请求参数接收方式

    Spring MVC还支持模型绑定,自动将请求参数绑定到复杂类型,比如日期或自定义类型。只需在字段上添加适当的转换器或格式注解,如`@DateTimeFormat`。 8. **使用`@RequestParam`的可选参数** 可以使用`@...

    SpringMVC @ModelAttribute应用

    在Spring MVC框架中,`@ModelAttribute`是一个非常重要的注解,它主要用于数据绑定,帮助开发者在控制器方法中接收和处理请求参数。这篇文章将深入探讨`@ModelAttribute`的应用及其背后的原理。 `@ModelAttribute`...

    Spring3MVC 在JSP中使用@ModelAttribute

    当我们在控制器方法中声明一个带有`@ModelAttribute`注解的参数时,Spring MVC会在执行该方法前尝试从模型(Model)中获取该属性。如果模型中不存在,那么它会根据参数类型创建一个新的实例,并尝试从请求参数中...

    spring mvc注释文档

    使用`@RequestParam`注解可以明确指定请求参数与处理方法参数之间的绑定关系。例如: ```java @RequestMapping(value = "/search", method = RequestMethod.GET) public String search(@RequestParam(name = "name...

    Spring MVC3复杂表单终极解决办法

    在Spring MVC中,这种复杂性可以通过模型绑定(Model Binding)和数据转换(Data Conversion)机制来简化处理。 1. **模型绑定**: Spring MVC支持基于注解的模型绑定,允许开发者通过`@ModelAttribute`注解将HTTP...

    qfedu三段springmvc

    除了基本类型,我们还可以直接将前端传来的数据绑定到自定义的实体类中,实现更复杂的数据结构处理。 **前端示例代码:** ```html 对象数据绑定 &lt;form action="/obj.do" method="get"&gt; id ...

    springmvc.docx

    - SpringMVC 使用注解简化配置,如 @Controller、@RequestMapping、@RequestParam、@PathVariable 等,使得控制器类和方法可以直接绑定请求和参数。 5. **配置 SpringMVC 访问路径** - 在 web.xml 中配置 ...

    SpringMVC 学习总结

    1. **基本类型参数绑定**:可以直接通过 `@RequestParam` 注解来绑定基本类型的参数,如 String、int 等。 ```java @RequestMapping("/example") public String example(@RequestParam("id") int id) { // 处理...

    spring_mvc_jar.zip

    10. **Converter/Spring MVC Form Binding**:Spring MVC提供了数据绑定机制,可以自动将请求参数转换为模型对象的属性,反之亦然。 11. **Validation**:Spring MVC支持JSR 303/JSR 349 Bean Validation标准,可以...

    SpringMVC框架配置

    - 使用@ModelAttribute注解进行模型数据绑定,将HTTP请求参数与Controller方法参数关联。 - 可以通过Validator接口实现自定义的数据验证。 9. **拦截器(Interceptor)**: - SpringMVC支持拦截器,可以在请求...

    struts的form不能初始化java.util.Date类型

    Struts是Java Web开发中的一个流行框架,它主要用于构建基于MVC(Model-View-Controller)模式的应用程序。在处理表单数据时,Struts框架提供了便捷的方式将用户输入映射到Action类的属性上。然而,有一个常见的问题...

    jodd mvc截图教程

    - `@Model`注解可以帮助将对象绑定到模型,使得在视图中可以直接访问。 5. **过滤器(Filters)** - Madvoc支持过滤器链,可以用来处理请求前后的逻辑,如认证、授权、日志记录等。 - 使用`@Before`和`@After`...

    JAVA框架面试题汇总编程资料

    4. **使用@ModelAttribute注解**:在方法参数上使用`@ModelAttribute`注解,Spring MVC会自动将数据绑定到相应的对象中,并将其放入模型。 #### 七、Spring MVC Controller的视图跳转 Spring MVC支持多种视图跳转...

    spring_mvc代码_spring_mvc代码实例_

    例如,`@ModelAttribute` 注解用于将请求参数绑定到模型对象。 3. **View**:视图层,负责呈现数据。Spring MVC 支持多种视图技术,如JSP、FreeMarker、Thymeleaf等。视图解析器(如InternalResourceViewResolver)...

    Spring In Action SpringMVC 提交表单

    `@ModelAttribute`注解用于将HTTP请求参数绑定到Java对象,如User类。SpringMVC会自动将表单字段的值映射到User对象的相应属性。 3. 数据验证 在`processForm`方法中,可以使用`BindingResult`参数进行数据验证。...

    Java实训教程 Java软件开发实战 Java开发框架介绍 SpringMVC_8_标签库 共39页.pptx

    **SpringMVC_6_数据校验**(共26页):这一部分重点介绍了SpringMVC中的数据验证机制,包括如何定义验证规则、使用JSR 303/JSR 349进行注解级别的验证,以及自定义验证逻辑等。 **SpringMVC_7_国际化**(共9页):...

Global site tag (gtag.js) - Google Analytics