Browse Source

Polishing

pull/32215/head
Juergen Hoeller 2 years ago
parent
commit
cfa47fa4fb
  1. 4
      spring-web/src/main/java/org/springframework/web/method/annotation/ModelFactory.java
  2. 18
      spring-web/src/test/java/org/springframework/web/method/annotation/SessionAttributesHandlerTests.java

4
spring-web/src/main/java/org/springframework/web/method/annotation/ModelFactory.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -234,11 +234,9 @@ public final class ModelFactory { @@ -234,11 +234,9 @@ public final class ModelFactory {
if (attributeName.startsWith(BindingResult.MODEL_KEY_PREFIX)) {
return false;
}
if (this.sessionAttributesHandler.isHandlerSessionAttribute(attributeName, value.getClass())) {
return true;
}
return (!value.getClass().isArray() && !(value instanceof Collection) &&
!(value instanceof Map) && !BeanUtils.isSimpleValueType(value.getClass()));
}

18
spring-web/src/test/java/org/springframework/web/method/annotation/SessionAttributesHandlerTests.java

@ -16,7 +16,6 @@ @@ -16,7 +16,6 @@
package org.springframework.web.method.annotation;
import java.util.HashSet;
import org.junit.jupiter.api.Test;
@ -35,14 +34,15 @@ import static org.assertj.core.api.Assertions.assertThat; @@ -35,14 +34,15 @@ import static org.assertj.core.api.Assertions.assertThat;
/**
* Test fixture with {@link SessionAttributesHandler}.
*
* @author Rossen Stoyanchev
*/
class SessionAttributesHandlerTests {
private final SessionAttributeStore sessionAttributeStore = new DefaultSessionAttributeStore();
private final SessionAttributesHandler sessionAttributesHandler = new SessionAttributesHandler(
SessionAttributeHandler.class, sessionAttributeStore);
private final SessionAttributesHandler sessionAttributesHandler =
new SessionAttributesHandler(TestSessionAttributesHolder.class, sessionAttributeStore);
private final NativeWebRequest request = new ServletWebRequest(new MockHttpServletRequest());
@ -62,12 +62,16 @@ class SessionAttributesHandlerTests { @@ -62,12 +62,16 @@ class SessionAttributesHandlerTests {
sessionAttributeStore.storeAttribute(request, "attr3", new TestBean());
sessionAttributeStore.storeAttribute(request, "attr4", new TestBean());
assertThat(sessionAttributesHandler.retrieveAttributes(request).keySet()).as("Named attributes (attr1, attr2) should be 'known' right away").isEqualTo(new HashSet<>(asList("attr1", "attr2")));
assertThat(sessionAttributesHandler.retrieveAttributes(request).keySet())
.as("Named attributes (attr1, attr2) should be 'known' right away")
.isEqualTo(new HashSet<>(asList("attr1", "attr2")));
// Resolve 'attr3' by type
sessionAttributesHandler.isHandlerSessionAttribute("attr3", TestBean.class);
assertThat(sessionAttributesHandler.retrieveAttributes(request).keySet()).as("Named attributes (attr1, attr2) and resolved attribute (att3) should be 'known'").isEqualTo(new HashSet<>(asList("attr1", "attr2", "attr3")));
assertThat(sessionAttributesHandler.retrieveAttributes(request).keySet())
.as("Named attributes (attr1, attr2) and resolved attribute (attr3) should be 'known'")
.isEqualTo(new HashSet<>(asList("attr1", "attr2", "attr3")));
}
@Test
@ -105,8 +109,8 @@ class SessionAttributesHandlerTests { @@ -105,8 +109,8 @@ class SessionAttributesHandlerTests {
}
@SessionAttributes(names = { "attr1", "attr2" }, types = { TestBean.class })
private static class SessionAttributeHandler {
@SessionAttributes(names = {"attr1", "attr2"}, types = TestBean.class)
private static class TestSessionAttributesHolder {
}
}

Loading…
Cancel
Save