0

I'm using Bozho solution to create a session attribute annotation under Spring mvc.
I've a problem when the object is not in the session and I've something like

@SessionAttribute(required = false) MyFormObject myFormObject

The annotation is defined as

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SessionAttribute {
    String value() default "";
    boolean required() default true;
    String defaultValue() default ValueConstants.DEFAULT_NONE;
}

I get an exception since defaultValue() returns a String and my custom ArgumentResolver tries to assign this String to MyFormObject.

How can I instruct Spring to assign null to myFormObject instead of ValueConstants.DEFAULT_NONE?

Community
  • 1
  • 1
mickthompson
  • 5,442
  • 11
  • 47
  • 59

2 Answers2

0

Can't you simple modify the custom WebArgumentResolver to return null instead of defaultValue when attribute is not found?

axtavt
  • 239,438
  • 41
  • 511
  • 482
0

the defaultValue can be the username of the user, which you can find by injecting a dao into the resolver. But having a default user doesn't make much sense anyway, so just return null

Bozho
  • 588,226
  • 146
  • 1,060
  • 1,140