本文整理了Java中org.springframework.web.bind.support.WebRequestDataBinder
类的一些代码示例,展示了WebRequestDataBinder
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WebRequestDataBinder
类的具体详情如下:
包路径:org.springframework.web.bind.support.WebRequestDataBinder
类名称:WebRequestDataBinder
[英]Special org.springframework.validation.DataBinder to perform data binding from web request parameters to JavaBeans, including support for multipart files.
See the DataBinder/WebDataBinder superclasses for customization options, which include specifying allowed/required fields, and registering custom property editors.
Can also used for manual data binding in custom web controllers or interceptors that build on Spring's org.springframework.web.context.request.WebRequestabstraction: e.g. in a org.springframework.web.context.request.WebRequestInterceptorimplementation. Simply instantiate a WebRequestDataBinder for each binding process, and invoke bind with the current WebRequest as argument:
MyBean myBean = new MyBean();
// apply binder to custom target object
WebRequestDataBinder binder = new WebRequestDataBinder(myBean);
// register custom editors, if desired
binder.registerCustomEditor(...);
// trigger actual binding of request parameters
binder.bind(request);
// optionally evaluate binding errors
Errors errors = binder.getErrors();
...
[中]特别组织。springframework。验证。DataBinder执行从web请求参数到JavaBeans的数据绑定,包括对多部分文件的支持。
有关自定义选项,请参见DataBinder/WebDataBinder超类,其中包括指定允许/必需字段,以及注册自定义属性编辑器。
也可以用于在Spring组织上构建的自定义web控制器或拦截器中手动绑定数据。springframework。网状物上下文要求WebRequestabstraction:例如在组织中。springframework。网状物上下文要求WebRequestInterceptorimplementation。只需为每个绑定进程实例化一个WebRequestDataBinder,并以当前WebRequest作为参数调用bind:
MyBean myBean = new MyBean();
// apply binder to custom target object
WebRequestDataBinder binder = new WebRequestDataBinder(myBean);
// register custom editors, if desired
binder.registerCustomEditor(...);
// trigger actual binding of request parameters
binder.bind(request);
// optionally evaluate binding errors
Errors errors = binder.getErrors();
...
代码示例来源:origin: spring-projects/spring-framework
@Override
public void service(HttpServletRequest request, HttpServletResponse response) {
WebRequestDataBinder binder = new WebRequestDataBinder(bean);
ServletWebRequest webRequest = new ServletWebRequest(request, response);
binder.bind(webRequest);
response.setStatus(HttpServletResponse.SC_OK);
}
代码示例来源:origin: spring-projects/spring-framework
/**
* Treats errors as fatal.
* <p>Use this method only if it's an error if the input isn't valid.
* This might be appropriate if all input is from dropdowns, for example.
* @throws BindException if binding errors have been encountered
*/
public void closeNoCatch() throws BindException {
if (getBindingResult().hasErrors()) {
throw new BindException(getBindingResult());
}
}
代码示例来源:origin: spring-projects/spring-framework
if (isMultipartRequest(request) && request instanceof NativeWebRequest) {
MultipartRequest multipartRequest = ((NativeWebRequest) request).getNativeRequest(MultipartRequest.class);
if (multipartRequest != null) {
bindMultipart(multipartRequest.getMultiFileMap(), mpvs);
bindParts(servletRequest, mpvs);
doBind(mpvs);
代码示例来源:origin: spring-projects/spring-framework
@Test
public void testMultipartFileAsString() {
TestBean target = new TestBean();
WebRequestDataBinder binder = new WebRequestDataBinder(target);
binder.registerCustomEditor(String.class, new StringMultipartFileEditor());
MockMultipartHttpServletRequest request = new MockMultipartHttpServletRequest();
request.addFile(new MockMultipartFile("name", "Juergen".getBytes()));
binder.bind(new ServletWebRequest(request));
assertEquals("Juergen", target.getName());
}
代码示例来源:origin: spring-projects/spring-framework
/**
* Extension point to create the WebDataBinder instance.
* By default this is {@code WebRequestDataBinder}.
* @param target the binding target or {@code null} for type conversion only
* @param objectName the binding target object name
* @param webRequest the current request
* @throws Exception in case of invalid state or arguments
*/
protected WebDataBinder createBinderInstance(
@Nullable Object target, String objectName, NativeWebRequest webRequest) throws Exception {
return new WebRequestDataBinder(target, objectName);
}
代码示例来源:origin: stackoverflow.com
@RequestMapping(value = "/add/{name}", method = RequestMethod.POST)
public String processForm(@PathVariable String name, WebRequest request) {
//System.out.println(bean);
Object myBean = registry.lookup(name);
WebRequestDataBinder binder = new WebRequestDataBinder(myBean);
// optionnaly configure the binder
...
// trigger actual binding of request parameters
binder.bind(request);
// optionally validate
binder.validate();
// process binding results
BindingResult result = binder.getBindingResult();
...
return "redirect:/add/" + name;
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void testBindingWithNestedObjectCreationThroughAutoGrow() throws Exception {
TestBean tb = new TestBeanWithConcreteSpouse();
WebRequestDataBinder binder = new WebRequestDataBinder(tb, "person");
binder.setIgnoreUnknownFields(false);
MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter("concreteSpouse.name", "test");
binder.bind(new ServletWebRequest(request));
assertNotNull(tb.getSpouse());
assertEquals("test", tb.getSpouse().getName());
}
代码示例来源:origin: spring-projects/spring-framework
/**
* 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);
}
代码示例来源:origin: org.parancoe/parancoe-web
protected void doBind(NativeWebRequest webRequest, WebDataBinder binder,
boolean failOnErrors)
throws Exception {
WebRequestDataBinder requestBinder = (WebRequestDataBinder) binder;
requestBinder.bind(webRequest);
if (failOnErrors) {
requestBinder.closeNoCatch();
}
}
代码示例来源:origin: spring-projects/spring-framework
private void bindParts(HttpServletRequest request, MutablePropertyValues mpvs) {
try {
MultiValueMap<String, Part> map = new LinkedMultiValueMap<>();
for (Part part : request.getParts()) {
map.add(part.getName(), part);
}
map.forEach((key, values) -> {
if (values.size() == 1) {
Part part = values.get(0);
if (isBindEmptyMultipartFiles() || part.getSize() > 0) {
mpvs.add(key, part);
}
}
else {
mpvs.add(key, values);
}
});
}
catch (Exception ex) {
throw new MultipartException("Failed to get request parts", ex);
}
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void testMultipartFileAsStringArray() {
TestBean target = new TestBean();
WebRequestDataBinder binder = new WebRequestDataBinder(target);
binder.registerCustomEditor(String.class, new StringMultipartFileEditor());
MockMultipartHttpServletRequest request = new MockMultipartHttpServletRequest();
request.addFile(new MockMultipartFile("stringArray", "Juergen".getBytes()));
binder.bind(new ServletWebRequest(request));
assertEquals(1, target.getStringArray().length);
assertEquals("Juergen", target.getStringArray()[0]);
}
代码示例来源:origin: org.springframework/spring-web
/**
* Extension point to create the WebDataBinder instance.
* By default this is {@code WebRequestDataBinder}.
* @param target the binding target or {@code null} for type conversion only
* @param objectName the binding target object name
* @param webRequest the current request
* @throws Exception in case of invalid state or arguments
*/
protected WebDataBinder createBinderInstance(
@Nullable Object target, String objectName, NativeWebRequest webRequest) throws Exception {
return new WebRequestDataBinder(target, objectName);
}
代码示例来源:origin: stackoverflow.com
@RequestMapping(value = "/{name}", method = RequestMethod.POST)
public String submitFormAction(@PathVariable("name") final String name, final WebRequest request, final Model model) {
final Object bean = registry.lookup(name);
final Validator validator = validatorRegistry.lookup(name);
final WebRequestDataBinder binder = new WebRequestDataBinder(bean, "bean");
binder.setValidator(validator);
binder.validate();
binder.bind(request);
final BindingResult result = binder.getBindingResult();
if (result.hasErrors()) {
model.addAttribute("name", name);
model.addAllAttributes(result.getModel());
return "form";
}
return "redirect:/" + name;
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void testFieldPrefixCausesFieldResetWithIgnoreUnknownFields() throws Exception {
TestBean target = new TestBean();
WebRequestDataBinder binder = new WebRequestDataBinder(target);
binder.setIgnoreUnknownFields(false);
MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter("_postProcessed", "visible");
request.addParameter("postProcessed", "on");
binder.bind(new ServletWebRequest(request));
assertTrue(target.isPostProcessed());
request.removeParameter("postProcessed");
binder.bind(new ServletWebRequest(request));
assertFalse(target.isPostProcessed());
}
代码示例来源:origin: org.springframework/spring-web
/**
* 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);
}
代码示例来源:origin: org.springframework/spring-web
private void bindParts(HttpServletRequest request, MutablePropertyValues mpvs) {
try {
MultiValueMap<String, Part> map = new LinkedMultiValueMap<>();
for (Part part : request.getParts()) {
map.add(part.getName(), part);
}
map.forEach((key, values) -> {
if (values.size() == 1) {
Part part = values.get(0);
if (isBindEmptyMultipartFiles() || part.getSize() > 0) {
mpvs.add(key, part);
}
}
else {
mpvs.add(key, values);
}
});
}
catch (Exception ex) {
throw new MultipartException("Failed to get request parts", ex);
}
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void testEnumBinding() {
EnumHolder target = new EnumHolder();
WebRequestDataBinder binder = new WebRequestDataBinder(target);
MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter("myEnum", "FOO");
binder.bind(new ServletWebRequest(request));
assertEquals(MyEnum.FOO, target.getMyEnum());
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void testMultipartFilesAsStringArray() {
TestBean target = new TestBean();
WebRequestDataBinder binder = new WebRequestDataBinder(target);
binder.registerCustomEditor(String.class, new StringMultipartFileEditor());
MockMultipartHttpServletRequest request = new MockMultipartHttpServletRequest();
request.addFile(new MockMultipartFile("stringArray", "Juergen".getBytes()));
request.addFile(new MockMultipartFile("stringArray", "Eva".getBytes()));
binder.bind(new ServletWebRequest(request));
assertEquals(2, target.getStringArray().length);
assertEquals("Juergen", target.getStringArray()[0]);
assertEquals("Eva", target.getStringArray()[1]);
}
代码示例来源:origin: spring-projects/spring-framework
@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());
}
代码示例来源:origin: org.springframework/spring-web
if (isMultipartRequest(request) && request instanceof NativeWebRequest) {
MultipartRequest multipartRequest = ((NativeWebRequest) request).getNativeRequest(MultipartRequest.class);
if (multipartRequest != null) {
bindMultipart(multipartRequest.getMultiFileMap(), mpvs);
bindParts(servletRequest, mpvs);
doBind(mpvs);
内容来源于网络,如有侵权,请联系作者删除!