/** * <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/整理的代码
相关推荐
在Spring MVC中,将Checkbox的值绑定到Model对象的int数据类型涉及到表单数据的处理、自定义编辑器以及模型绑定。以下是如何实现这个功能的详细步骤和解释: 首先,我们有一个User类,其中包含一些属性,如id、name...
总的来说,Spring 3 MVC通过自定义类型转换器和`@InitBinder`注解,使得我们可以轻松地将checkbox的值绑定到model对象的int数据类型,从而简化了表单数据处理的复杂性。这个过程确保了数据的正确性,避免了因为类型...
3. **@ModelAttribute**:这个注解用于将请求参数绑定到方法的参数上。我们可以在控制器方法中添加一个参数,通过这个参数来判断是否是重复请求。例如,可以设置一个临时ID,首次提交时生成并保存,后续请求如果携带...
这些注解不仅帮助Model Binder理解如何正确地绑定数据,还能生成客户端验证规则,提供更好的用户体验。 本课程可能涵盖了一些关键概念,如: 1. Model Binder的基本工作流程和机制。 2. 如何利用内置的Model Binder...
Spring MVC还支持模型绑定,自动将请求参数绑定到复杂类型,比如日期或自定义类型。只需在字段上添加适当的转换器或格式注解,如`@DateTimeFormat`。 8. **使用`@RequestParam`的可选参数** 可以使用`@...
在Spring MVC框架中,`@ModelAttribute`是一个非常重要的注解,它主要用于数据绑定,帮助开发者在控制器方法中接收和处理请求参数。这篇文章将深入探讨`@ModelAttribute`的应用及其背后的原理。 `@ModelAttribute`...
当我们在控制器方法中声明一个带有`@ModelAttribute`注解的参数时,Spring MVC会在执行该方法前尝试从模型(Model)中获取该属性。如果模型中不存在,那么它会根据参数类型创建一个新的实例,并尝试从请求参数中...
使用`@RequestParam`注解可以明确指定请求参数与处理方法参数之间的绑定关系。例如: ```java @RequestMapping(value = "/search", method = RequestMethod.GET) public String search(@RequestParam(name = "name...
在Spring MVC中,这种复杂性可以通过模型绑定(Model Binding)和数据转换(Data Conversion)机制来简化处理。 1. **模型绑定**: Spring MVC支持基于注解的模型绑定,允许开发者通过`@ModelAttribute`注解将HTTP...
除了基本类型,我们还可以直接将前端传来的数据绑定到自定义的实体类中,实现更复杂的数据结构处理。 **前端示例代码:** ```html 对象数据绑定 <form action="/obj.do" method="get"> id ...
- SpringMVC 使用注解简化配置,如 @Controller、@RequestMapping、@RequestParam、@PathVariable 等,使得控制器类和方法可以直接绑定请求和参数。 5. **配置 SpringMVC 访问路径** - 在 web.xml 中配置 ...
1. **基本类型参数绑定**:可以直接通过 `@RequestParam` 注解来绑定基本类型的参数,如 String、int 等。 ```java @RequestMapping("/example") public String example(@RequestParam("id") int id) { // 处理...
10. **Converter/Spring MVC Form Binding**:Spring MVC提供了数据绑定机制,可以自动将请求参数转换为模型对象的属性,反之亦然。 11. **Validation**:Spring MVC支持JSR 303/JSR 349 Bean Validation标准,可以...
- 使用@ModelAttribute注解进行模型数据绑定,将HTTP请求参数与Controller方法参数关联。 - 可以通过Validator接口实现自定义的数据验证。 9. **拦截器(Interceptor)**: - SpringMVC支持拦截器,可以在请求...
Struts是Java Web开发中的一个流行框架,它主要用于构建基于MVC(Model-View-Controller)模式的应用程序。在处理表单数据时,Struts框架提供了便捷的方式将用户输入映射到Action类的属性上。然而,有一个常见的问题...
- `@Model`注解可以帮助将对象绑定到模型,使得在视图中可以直接访问。 5. **过滤器(Filters)** - Madvoc支持过滤器链,可以用来处理请求前后的逻辑,如认证、授权、日志记录等。 - 使用`@Before`和`@After`...
4. **使用@ModelAttribute注解**:在方法参数上使用`@ModelAttribute`注解,Spring MVC会自动将数据绑定到相应的对象中,并将其放入模型。 #### 七、Spring MVC Controller的视图跳转 Spring MVC支持多种视图跳转...
例如,`@ModelAttribute` 注解用于将请求参数绑定到模型对象。 3. **View**:视图层,负责呈现数据。Spring MVC 支持多种视图技术,如JSP、FreeMarker、Thymeleaf等。视图解析器(如InternalResourceViewResolver)...
`@ModelAttribute`注解用于将HTTP请求参数绑定到Java对象,如User类。SpringMVC会自动将表单字段的值映射到User对象的相应属性。 3. 数据验证 在`processForm`方法中,可以使用`BindingResult`参数进行数据验证。...
**SpringMVC_6_数据校验**(共26页):这一部分重点介绍了SpringMVC中的数据验证机制,包括如何定义验证规则、使用JSR 303/JSR 349进行注解级别的验证,以及自定义验证逻辑等。 **SpringMVC_7_国际化**(共9页):...