Java源码示例:org.springframework.web.bind.support.WebRequestDataBinder

示例1
@Test
public void resolveOptional() throws Exception {
	WebDataBinder dataBinder = new WebRequestDataBinder(null);
	dataBinder.setConversionService(new DefaultConversionService());
	WebDataBinderFactory factory = mock(WebDataBinderFactory.class);
	given(factory.createBinder(this.webRequest, null, "foo")).willReturn(dataBinder);

	MethodParameter param = initMethodParameter(3);
	Object actual = testResolveArgument(param, factory);
	assertNotNull(actual);
	assertEquals(Optional.class, actual.getClass());
	assertFalse(((Optional<?>) actual).isPresent());

	Foo foo = new Foo();
	this.webRequest.setAttribute("foo", foo, getScope());

	actual = testResolveArgument(param, factory);
	assertNotNull(actual);
	assertEquals(Optional.class, actual.getClass());
	assertTrue(((Optional<?>) actual).isPresent());
	assertSame(foo, ((Optional<?>) actual).get());
}
 
示例2
@Test
public void resolveOptional() throws Exception {
	WebDataBinder dataBinder = new WebRequestDataBinder(null);
	dataBinder.setConversionService(new DefaultConversionService());
	WebDataBinderFactory factory = mock(WebDataBinderFactory.class);
	given(factory.createBinder(this.webRequest, null, "foo")).willReturn(dataBinder);

	MethodParameter param = initMethodParameter(3);
	Object actual = testResolveArgument(param, factory);
	assertNotNull(actual);
	assertEquals(Optional.class, actual.getClass());
	assertFalse(((Optional<?>) actual).isPresent());

	Foo foo = new Foo();
	this.webRequest.setAttribute("foo", foo, getScope());

	actual = testResolveArgument(param, factory);
	assertNotNull(actual);
	assertEquals(Optional.class, actual.getClass());
	assertTrue(((Optional<?>) actual).isPresent());
	assertSame(foo, ((Optional<?>) actual).get());
}
 
示例3
/**
 * Obtain credentials from the request.
 *
 * @return the credential
 */
protected Credential obtainCredentials() {
    final UsernamePasswordCredential c = new UsernamePasswordCredential();
    final WebRequestDataBinder binder = new WebRequestDataBinder(c);
    final RestletWebRequest webRequest = new RestletWebRequest(getRequest());

    final Form form = new Form(getRequest().getEntity());
    logFormRequest(form);

    if (!form.isEmpty()) {
        binder.bind(webRequest);
        return c;
    }
    LOGGER.trace("Failed to bind the request to credentials. Resulting form is empty");
    return null;
}
 
示例4
@Test
public void resolveArgumentViaDefaultConstructor() throws Exception {
	WebDataBinder dataBinder = new WebRequestDataBinder(null);
	WebDataBinderFactory factory = mock(WebDataBinderFactory.class);
	given(factory.createBinder(any(), notNull(), eq("attrName"))).willReturn(dataBinder);

	this.processor.resolveArgument(this.paramNamedValidModelAttr, this.container, this.request, factory);
	verify(factory).createBinder(any(), notNull(), eq("attrName"));
}
 
示例5
private void testGetAttributeFromModel(String expectedAttrName, MethodParameter param) throws Exception {
	Object target = new TestBean();
	this.container.addAttribute(expectedAttrName, target);

	WebDataBinder dataBinder = new WebRequestDataBinder(target);
	WebDataBinderFactory factory = mock(WebDataBinderFactory.class);
	given(factory.createBinder(this.request, target, expectedAttrName)).willReturn(dataBinder);

	this.processor.resolveArgument(param, this.container, this.request, factory);
	verify(factory).createBinder(this.request, target, expectedAttrName);
}
 
示例6
@Test
public void resolveArgumentViaDefaultConstructor() throws Exception {
	WebDataBinder dataBinder = new WebRequestDataBinder(null);
	WebDataBinderFactory factory = mock(WebDataBinderFactory.class);
	given(factory.createBinder(any(), notNull(), eq("attrName"))).willReturn(dataBinder);

	this.processor.resolveArgument(this.paramNamedValidModelAttr, this.container, this.request, factory);
	verify(factory).createBinder(any(), notNull(), eq("attrName"));
}
 
示例7
private void testGetAttributeFromModel(String expectedAttrName, MethodParameter param) throws Exception {
	Object target = new TestBean();
	this.container.addAttribute(expectedAttrName, target);

	WebDataBinder dataBinder = new WebRequestDataBinder(target);
	WebDataBinderFactory factory = mock(WebDataBinderFactory.class);
	given(factory.createBinder(this.request, target, expectedAttrName)).willReturn(dataBinder);

	this.processor.resolveArgument(param, this.container, this.request, factory);
	verify(factory).createBinder(this.request, target, expectedAttrName);
}
 
示例8
protected Credential obtainCredentials() {
    final UsernamePasswordCredential c = new UsernamePasswordCredential();
    final WebRequestDataBinder binder = new WebRequestDataBinder(c);
    final RestletWebRequest webRequest = new RestletWebRequest(getRequest());

    logFormRequest(new Form(getRequest().getEntity()));
    binder.bind(webRequest);

    return c;
}
 
示例9
private void getAttributeFromModel(String expectedAttributeName, MethodParameter param) throws Exception {
	Object target = new TestBean();
	mavContainer.addAttribute(expectedAttributeName, target);

	WebDataBinder dataBinder = new WebRequestDataBinder(target);
	WebDataBinderFactory factory = mock(WebDataBinderFactory.class);
	given(factory.createBinder(webRequest, target, expectedAttributeName)).willReturn(dataBinder);

	processor.resolveArgument(param, mavContainer, webRequest, factory);
	verify(factory).createBinder(webRequest, target, expectedAttributeName);
}
 
示例10
@Test
public void resovleArgumentViaDefaultConstructor() throws Exception {
	WebDataBinder dataBinder = new WebRequestDataBinder(null);

	WebDataBinderFactory factory = mock(WebDataBinderFactory.class);
	given(factory.createBinder((NativeWebRequest) anyObject(), notNull(), eq("attrName"))).willReturn(dataBinder);

	processor.resolveArgument(paramNamedValidModelAttr, mavContainer, webRequest, factory);

	verify(factory).createBinder((NativeWebRequest) anyObject(), notNull(), eq("attrName"));
}
 
示例11
protected WebDataBinder createBinder(NativeWebRequest webRequest, Object target, String objectName)
		throws Exception {

	return new WebRequestDataBinder(target, objectName);
}
 
示例12
protected void doBind(WebDataBinder binder, NativeWebRequest webRequest) throws Exception {
	((WebRequestDataBinder) binder).bind(webRequest);
}
 
示例13
protected WebDataBinder createBinder(NativeWebRequest webRequest, Object target, String objectName)
		throws Exception {

	return new WebRequestDataBinder(target, objectName);
}
 
示例14
protected void doBind(WebDataBinder binder, NativeWebRequest webRequest) throws Exception {
	((WebRequestDataBinder) binder).bind(webRequest);
}
 
示例15
@Test
public void missingRequestParamEmptyValueConvertedToNull() throws Exception {

	WebDataBinder binder = new WebRequestDataBinder(null);
	binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));

	WebDataBinderFactory binderFactory = mock(WebDataBinderFactory.class);
	given(binderFactory.createBinder(webRequest, null, "stringNotAnnot")).willReturn(binder);

	this.request.addParameter("stringNotAnnot", "");

	Object arg = resolver.resolveArgument(paramStringNotAnnot, null, webRequest, binderFactory);

	assertNull(arg);
}
 
示例16
@Test
public void missingRequestParamEmptyValueNotRequired() throws Exception {

	WebDataBinder binder = new WebRequestDataBinder(null);
	binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));

	WebDataBinderFactory binderFactory = mock(WebDataBinderFactory.class);
	given(binderFactory.createBinder(webRequest, null, "name")).willReturn(binder);

	this.request.addParameter("name", "");

	Object arg = resolver.resolveArgument(paramNotRequired, null, webRequest, binderFactory);

	assertNull(arg);
}
 
示例17
/**
 * Extension point to bind the request to the target object.
 * @param binder the data binder instance to use for the binding
 * @param request the current request
 */
protected void bindRequestParameters(WebDataBinder binder, NativeWebRequest request) {
	((WebRequestDataBinder) binder).bind(request);
}
 
示例18
/**
 * Extension point to bind the request to the target object.
 * @param binder the data binder instance to use for the binding
 * @param request the current request
 */
protected void bindRequestParameters(WebDataBinder binder, NativeWebRequest request) {
	((WebRequestDataBinder) binder).bind(request);
}
 
示例19
/**
 * Extension point to bind the request to the target object.
 * @param binder the data binder instance to use for the binding
 * @param request the current request
 */
protected void bindRequestParameters(WebDataBinder binder, NativeWebRequest request) {
	((WebRequestDataBinder) binder).bind(request);
}
 
示例20
/**
 * Extension point to bind the request to the target object.
 * @param binder the data binder instance to use for the binding
 * @param request the current request
 */
protected void bindRequestParameters(WebDataBinder binder, NativeWebRequest request) {
	((WebRequestDataBinder) binder).bind(request);
}