`

开发表单控制器

 
阅读更多
/** 
 * @Description:表单控制器
 * 
 * @author youyang_java@139.com
 * 
 */
@Controller
@RequestMapping("/edit.htm")
@SessionAttributes("curDemo")
public class FormController {
	
	@Resource
	private Validator demoValidator;
	
	@InitBinder
	public void initBinder(WebDataBinder binder){
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		format.setLenient(false);
		binder.registerCustomEditor(Date.class, new CustomDateEditor(format,false));
	}
	
	@ModelAttribute("birthes")
	public Map<String, String> getList(){
		Map<String, String> map = new HashMap<String, String>();
		map.put("2011-4-28","生日1");
		map.put("2011-5-2","生日2");
		map.put("2011-6-28","生日3");
		map.put("2011-6-2","生日4");
		return map;
	}

	@RequestMapping(method=RequestMethod.GET)
	public String setUpForm(@RequestParam(required=false)String name,ModelMap map){
		Demo demo = new Demo();
		if (StringUtils.isNotBlank(name)) {
			System.out.println(name);
			demo.setName(name);
			demo.setId(1l);
		}
		map.put("curDemo", demo);
		return "/test/editForm";
	}
	
	@RequestMapping(method=RequestMethod.POST)
	public String processSubmit(@ModelAttribute("curDemo")Demo demo,BindingResult result,SessionStatus status,ModelMap map){
		
		demoValidator.validate(demo, result);
		
		if (result.hasErrors()) {
			return "/test/editForm";
		}
		
		Demo curDemo = (Demo) map.get("curDemo");
		System.out.println("curDemo------"+curDemo.getId());
		System.out.println("curDemo------"+curDemo.getName());
		System.out.println("curDemo------"+curDemo.getBirth());
		System.out.println(demo.getId());
		System.out.println(demo.getName());
		System.out.println(demo.getBirth());
		
		status.setComplete();
		
		return "redirect:/success.htm";
	}
	
}

 

@InitBinder
public void initBinder(WebDataBinder binder)

@InitBinder注解将定制的属性编辑器注册到绑定对象上。

@ModelAttribute("birthes")
public Map<String, String> getList()
把@ModelAttribute注解使用到方法上,则在表单在展示前会调用该方法,并把方法的返回值放到模型中。

 

@RequestMapping(method=RequestMethod.POST)
public String processSubmit(@ModelAttribute("curDemo")Demo demo,BindingResult result,SessionStatus status,ModelMap map)

把@ModelAttribute注解使用到方法参数上,可以从模型中得到命令对象,并绑定到方法上。不过该注解可以不使用。

 

status.setComplete();

表单执行完成,清空session里面的值。

 

分享到:
评论

相关推荐

    纯js开发的表单设计器

    在表单设计器中,JavaScript主要用于控制表单元素的创建、布局、事件绑定以及数据的序列化和反序列化。 4. **核心功能** - **元素拖放**:用户可以通过鼠标将预设的表单元素从工具箱拖放到工作区,实现元素的添加...

    基于 ElementUI 的表单设计器

    基于Vue.js的扩展组件则进一步提升了开发效率,例如"基于ElementUI的表单设计器",即本文要讨论的"f-render"。 标题中的"基于ElementUI的表单设计器"指的是一款专门用于创建表单的工具,它利用了ElementUI这一优秀...

    表单设计器

    "表单设计器"是一款基于富文本编辑器CKEditor开发的强大工具,主要用于帮助用户轻松创建、设计和管理各种类型的在线表单。CKEditor是一款知名的开源富文本编辑器,它提供了丰富的文本格式化选项,使得在网页上创建...

    bootstrap表单构造器

    - **源码**:可能包含一个基于CodeIgniter框架的控制器、模型、视图文件,用于处理表单的展示、提交和验证。 - **CSS样式文件**:可能包含用于定制表单样式的CSS文件,与Bootstrap框架兼容。 - **JavaScript脚本**:...

    流程设计器+表单设计器+MVC

    MVC将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分,实现了业务逻辑、用户界面和数据处理的分离。模型负责数据的存储和业务逻辑,视图负责展示数据,而控制器作为桥梁,处理用户的输入并...

    表单构建器源码

    2. CSS文件:包含Bootstrap样式和其他自定义样式,用于控制表单构建器的视觉表现。 3. JavaScript文件:包含表单构建器的核心逻辑,包括拖放功能、组件管理、表单数据存储和导出等。 4. 图像资源:可能包括Bootstrap...

    winform表单设计器

    【winform表单设计器】是一种基于C#编程语言的用户界面设计工具,它允许开发者创建和自定义Windows桌面应用...同时,理解并运用好表单设计器背后的代码逻辑,将有助于提升编程技能,为更复杂的项目开发打下坚实的基础。

    表单设计器源码

    "表单设计器源码"是基于C#编程语言开发的一款工具,它允许用户通过图形化的方式动态创建和编辑表单界面。在C#的世界里,这样的工具极大地提升了开发者设计用户界面(UI)的效率,类似于专业级的集成开发环境(IDE)...

    Struts1 控制器组件和动态表单详解

    在Struts1中,控制器组件是整个架构的核心,它们负责协调用户请求、业务逻辑和视图之间的交互。本篇将深入探讨Struts1的控制器组件以及动态ActionForm的概念。 **Struts1控制器组件** 1. **ActionServlet组件**: ...

    JEECG Online表单开发指南v3.7

    ### JEECG Online表单开发指南v3.7 #### 1. Online表单配置 在JEECG智能开发平台中,Online表单配置是非常重要的一个环节,它可以帮助开发者快速搭建出符合需求的表单界面,并且具备良好的用户体验。本章节将详细...

    后台layui表单生成器代码复制即用,添加编辑一体,可条件判断

    这个压缩包"tfForm"包含了一个基于layui的后台表单生成器,允许开发者快速创建和编辑表单,同时支持条件判断,大大提升了开发效率。 layui的核心组件包括模块化(layui.use)、元素操作(layui.$)、表格(layui....

    自定义表单设计器演示版源码(C#).rar.rar

    本项目提供了C#语言实现的自定义表单设计器的演示版源码,这对于开发者来说是一个很好的学习资源,特别是对于那些正在学习Windows Forms、WPF或.NET Framework的初学者和专业开发人员。 在C#中,自定义表单设计器...

    超赞可视化表单设计器源码

    该可视化表单设计器的核心特性在于其高度可定制性,允许用户根据实际需求进行自定义控件的二次开发。这种功能使得开发者能够创造出满足特定业务场景的个性化表单,无论是OA(办公自动化)流程中的复杂表单,还是医疗...

    JS+HTML版表单构造器(Fom Builder)适合Web系统使用

    **JS+HTML版表单构造器(Fom Builder)**是一种实用的Web开发工具,它允许开发者在Web系统中快速创建和自定义表单。这个工具基于JavaScript和HTML技术,因此具有良好的浏览器兼容性和交互性,可以无缝集成到各种Web...

    jQuery+bootstrap可视化表单拖拽编辑,自定义拖拽设计表单

    代码简介:jQuery可视化表单拖拽编辑代码是一款基于jQuery和bootstrap框架制作可视化表单,可自定义拖拽控制生成表单,预览表单,表单各种属性可通过json格式的配置来处理控制表单的各个属性,看起来非常的高大上,...

    基于Vue的可视化表单设计器,让表单开发简单而高效。).zip

    在开发过程中,开发者可以利用Vue的生命周期钩子函数来控制表单的初始化、更新和销毁行为,确保与后端服务的数据同步。结合 Vuex,Vue的状态管理库,可以更好地管理和共享表单状态,处理更复杂的业务逻辑。 总的来...

    工作流管理系统及二次开发接口

    工作流管理系统及二次开发接口,在流程管理过程中,有些个性表单、报表等需求,这些表单有可能在表单格式、数据要求、权限控制等方面有个性的业务需求,用户可根据易协客服提供的开发接口进行自定义开发, ...

    ThinkPHP5控制器从入门到精通

    在开始深入探讨ThinkPHP5控制器之前,我们需要明确一点:正确使用控制器对于ThinkPHP的应用开发至关重要。本篇文档将全面解析控制器的角色及其功能,包括如何获取请求、数据验证、业务处理、异常处理、模板渲染以及...

    Form表单js设计器生成器

    通过使用"Form表单js设计器生成器",开发者可以快速创建符合Bootstrap设计规范的高质量表单,降低手动编写HTML和JavaScript的复杂度,提高开发效率。同时,这种可视化设计方式使得非编程背景的设计师也能参与到表单...

Global site tag (gtag.js) - Google Analytics