`

SpringMVC杂记(四) 数据绑定

阅读更多
SpringMVC杂记(四) 数据绑定

1) 使用java.beans.PropertyEditor接口
如一个表单类
public class UserInfoForm {

	private String username;
	private String password;

	// getter and setter ...
}

在同一个包下新建一个类 UserInfoFormEditor,这个类名很重要
名字是XxxEditor, Xxx当然是指要编辑的类名字啦。
public class UserInfoFormEditor extends PropertyEditorSupport {

	@Override
	public String getAsText() {
		UserInfoForm form = (UserInfoForm) super.getValue();
		return form.getUsername() + "@@" + form.getPassword();
	}

	@Override
	public void setAsText(String text) throws IllegalArgumentException {
		UserInfoForm value = new UserInfoForm();
		String[] infos = text.split("@@");
		value.setUsername(infos[0]);
		value.setPassword(infos[1]);
		setValue(value);
	}
}


2) 如果Editor类的名字不遵守上面的规范的话。 就只能可以在Controller中注册一下了。
@Controller
@RequestMapping("/test")
public class UserInfoController {

	@InitBinder
	public void initBinder(WebDataBinder binder) {
		binder.registerCustomEditor(UserInfoForm.class, new UserInfoFormEditor());
	}
}


3) 如果想把Editor注册成全局性质的,而不仅仅对每一个固定的Controller起作用。
Controller类实现WebBindingInitializer接口即可。
@Controller
@RequestMapping("/test")
public class UserInfoController implements WebBindingInitializer {

	@InitBinder
	public void initBinder(WebDataBinder binder, WebRequest request) {
		binder.registerCustomEditor(UserInfoForm.class, new UserInfoFormEditor());
	}
}


4) org.springframework.core.convert.converter.Converter接口。
这个接口在Spring3.x时代才加入进来。 但是用法确实简单明了。

首先实现
public class String2UserInfoFormConverter implements Converter<String, UserInfoForm> {

	public UserInfoForm convert(String source) {
		UserInfoForm form = new UserInfoForm();
		form.setUsername(source.split("@@")[0]);
		form.setPassword(source.split("@@")[1]);
		return form;
	}
}


再在spring mvc的配置文件添加以下内容,就可完成全局配置。 特别推荐这种方式。
<mvc:annotation-driven conversion-service="conversion-service" />

<bean id="conversion-service"
	class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
	<property name="converters">
		<list>
			<bean class="com.wicresoft.jpo.demo.converter.String2UserInfoFormConverter" />
		</list>
	</property>
</bean>


5) 数据绑定异常处理。如果某些错误需要特别处理而又不在全局exceptionResolver指定的话。
可以把Controller也实现为一个import org.springframework.web.servlet.HandlerExceptionResolver
分享到:
评论

相关推荐

    SpringMVC入门很简单之数据绑定(下)

    在本篇中,我们将深入探讨SpringMVC框架中的数据绑定,这是Java开发中一个至关重要的概念,尤其是在构建Web应用程序时。SpringMVC是Spring框架的一部分,它为开发RESTful服务和传统的表单提交提供了强大的支持。数据...

    SpringMVC数据绑定及数据类型转换

    在SpringMVC中,数据绑定和数据类型转换是两个关键的概念,它们对于构建高效、健壮的Web应用至关重要。 **数据绑定**是SpringMVC中的一种机制,允许我们将用户通过表单或其他方式提交的请求参数自动绑定到控制器中...

    Springmvc前后台数据数组绑定

    Springmvc前后台数据数组绑定,list超过了256时,会报错,如何解决?该文给出了说明

    SpringMVC杂记(五) JSR303数据验证

    在本篇《SpringMVC杂记(五) JSR303数据验证》中,我们将深入探讨SpringMVC框架如何集成并使用JSR303(JavaBeans Validation)来进行数据验证,这是一种强大的验证机制,可以确保应用程序接收到的数据是合法且符合...

    SpringMVC数据绑定入门.rar

    在这个“SpringMVC数据绑定入门”压缩包中,你将找到一系列资源来帮助你理解并掌握SpringMVC的数据绑定机制,这对于任何Java开发者来说都是一个重要的技能。 1. **SpringMVC概述**: SpringMVC作为Spring框架的一...

    SpringMVC 数据绑定实例详解

    本篇将深入讲解 SpringMVC 数据绑定的实例详解。 SpringMVC 的数据绑定是通过 `ModelAttribute` 注解和 `@RequestParam` 注解来实现的。`@ModelAttribute` 通常用于控制器方法的参数,它可以从模型(Model)中获取...

    SpringMVC配置多数据源实战

    在SpringMVC框架中配置多数据源是一项常见的需求,尤其在大型企业级应用中,由于业务的复杂性,往往需要连接不同的数据库以满足不同模块的需求。以下将详细讲解如何实现这一功能。 首先,理解数据源(DataSource)...

    SpringMVC杂记(三) 向导型Controller的实现(基于SpringMVC 3.1.1)

    SpringMVC是一个模型-视图-控制器(MVC)框架,它提供了一个灵活的方式来分离应用程序的业务逻辑、数据处理和用户界面。Controller是这个架构的核心部分,负责接收HTTP请求,处理业务逻辑,并将结果转发给View进行...

    SpringMVC入门很简单之数据绑定(上)

    在本文中,我们将深入探讨SpringMVC框架中的数据绑定,这是Spring MVC开发中不可或缺的一部分,尤其是在处理用户输入和展示响应时。数据绑定是将HTTP请求参数与Java对象的属性关联的过程,极大地简化了Web应用程序的...

    spring MVC数据绑定大全

    spring MVC数据绑定 含例子 转载自疯芒毕露的专栏 刚开始用spring mvc 做web开发时 经常会不知道如何合适绑定页面数据 用惯struts2的朋友更认为spring mvc 绑定数据不如struts2方便 本人最开始也是这么认为 经过一段...

    springmvc入门参数绑定ssm整合

    四、SpringMVC参数绑定 SpringMVC参数绑定是指将用户请求的参数绑定到控制器的方法参数中。例如,使用@PathVariable注解绑定URL中的参数,使用@RequestParam注解绑定请求参数。 五、SSM整合 SSM整合是指将...

    扩展SpringMVC以支持更精准的数据绑定1

    在“扩展SpringMVC以支持更精准的数据绑定1”这个主题中,博主探讨了如何通过自定义转换器和验证器来增强Spring MVC的数据绑定能力,以满足更为复杂的应用场景。 首先,我们要了解Spring MVC的数据绑定基础。在默认...

    springmvc-demo05-数据绑定(接受参数).zip

    在这个名为"springmvc-demo05-数据绑定(接受参数)"的项目中,我们将深入探讨Spring MVC如何实现这一特性。 1. **数据绑定的基本概念** 数据绑定是将用户输入或者HTTP请求参数自动映射到Java对象的属性上的过程。...

    SpringMVC+多数据源Mysql(Mybatis)+多数据源Mongo

    SpringMVC+Mybatis(多数据源)+Mongo(多数据源),框架适合同时访问多种DB,且支持每种DB配置多个数据源。正如我代码中的demo,配置了两个mysql数据源+2个mongo数据源,可以在service实现中随意访问。除此之外还通过...

    SSM(Spring+SpringMVC+MyBatis)多数据源配置框架

    它简化了模型-视图-控制器(Model-View-Controller,MVC)的实现,负责处理HTTP请求,将数据绑定到模型,渲染视图,并与Spring的其他组件无缝集成。 **MyBatis** 是一个SQL映射框架,它允许开发者编写自定义的SQL...

    跟我学SpringMVC 教程

    第六章 注解式控制器详解 SpringMVC强大的数据绑定(1) 第六章 注解式控制器详解 SpringMVC强大的数据绑定(2) 第七章 注解式控制器的数据验证、类型转换及格式化 SpringMVC数据类型转换 第七章 注解式控制器的...

    springMVC取后台数据做Echarts报表

    SpringMVC作为一款强大的Java Web框架,常被用于处理HTTP请求、数据绑定和业务逻辑控制。而Echarts则是一款优秀的JavaScript图表库,能方便地创建各种交互式的数据可视化图表。本文将详细介绍如何使用SpringMVC来...

    跟我学SpringMVC

    第六章 注解式控制器详解 SpringMVC强大的数据绑定(1) 第六章 注解式控制器详解 SpringMVC强大的数据绑定(2) 第七章 注解式控制器的数据验证、类型转换及格式化 SpringMVC数据类型转换 第七章 注解式控制器的...

    SpringMVC+Oracle数据源demo项目完整代码

    SpringMVC和Oracle数据源是企业级Web应用开发中常见的技术组合。SpringMVC作为Spring框架的一部分,主要用于处理HTTP请求和响应,而Oracle数据库则是一个功能强大的关系型数据库管理系统,常用于存储和管理大量结构...

Global site tag (gtag.js) - Google Analytics