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,342
  • 11
  • 43
  • 59

2 Answers2

0

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

axtavt
  • 233,923
  • 40
  • 499
  • 475
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
  • 572,413
  • 138
  • 1,043
  • 1,132