Java 会话属性作为Spring MVC的方法参数

Java 会话属性作为Spring MVC的方法参数,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在使用创建SpringMVC下的会话属性注释。 当对象不在会话中时,我遇到了一个问题 @SessionAttribute(required = false) MyFormObject myFormObject 注释定义为 @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface SessionAttribute { String value() d

我正在使用创建SpringMVC下的会话属性注释。 当对象不在会话中时,我遇到了一个问题

@SessionAttribute(required = false) MyFormObject myFormObject
注释定义为

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SessionAttribute {
    String value() default "";
    boolean required() default true;
    String defaultValue() default ValueConstants.DEFAULT_NONE;
}
我得到一个异常,因为defaultValue返回一个字符串,而我的自定义ArgumentResolver尝试将该字符串分配给MyFormObject


我如何指示Spring将null分配给myFormObject而不是ValueConstants.DEFAULT\u NONE?

当找不到属性时,您不能简单地修改自定义WebArgumentResolver以返回null而不是defaultValue吗?

defaultValue可以是用户的用户名,您可以通过向resolver中注入dao来找到它。但是拥有一个默认用户并没有多大意义,所以只需返回null即可