开发表单控制器-程序员宅基地

技术标签: springMVC  

/** 
 * @Description:表单控制器
 * 
 * @author [email protected]
 * 
 */
@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里面的值。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chongqingnantian/article/details/84274466

智能推荐

php里echo 0,php中的echo()函数如何使用-程序员宅基地

文章浏览阅读492次。echo()函数用于输出一个或多个字符串,该函数没有返回值。需要注意的是,echo()函数实际上不是一个函数,所以不用对它使用括号。具体使用方法如:【$str = "Hello world!"; echo $str;】。函数介绍:echo() 函数输出一个或多个字符串。它没有返回值。(推荐教程:php图文教程)注意:echo() 函数实际不是一个函数,所以您不必对它使用括号。如果您想要传多于一个参..._echo0是什么意思

【故障诊断】基于金豺算法优化双向长短期记忆神经网络GJO-BILSTM-Adaboost的Adaboost实现故障诊断附matlab代码-程序员宅基地

文章浏览阅读45次。故障诊断一直是工程领域中一个重要的研究方向。随着技术的不断发展,人们对于如何准确、快速地诊断故障提出了更高的要求。近年来,机器学习和深度学习技术的出现为故障诊断带来了新的机遇和挑战。在这篇博文中,我们将介绍一种基于金豺算法优化双向长短期记忆神经网络的Adaboost实现的故障诊断算法流程。该算法被称为GJO-biLSTM-Adaboost,它结合了金豺算法、双向长短期记忆神经网络和Adaboost算法的优势,能够在故障诊断中取得较好的效果。首先,让我们来介绍一下金豺算法。

NLP基础——语言模型(LM)_..n..刂*lm-程序员宅基地

文章浏览阅读3.3k次。文章目录NLP基础:语言模型(LM)1. 模型评估(概率估计)2. 平滑方法3. LM在拼写纠正(Spell Correction)中的应用NLP基础:语言模型(LM)语言模型(LM,Language Model)就是用来判断某个句子是否语义通顺。首先对句子进行分词,句子的概率可以表示为各个词的联合概率:P(s)=P(w1,w2,...,wn)P(s)=P(w_1,w_2,...,w_n)P(s)=P(w1​,w2​,...,wn​)。根据Chain rule: P(A,B,C,D)=P(A)P(B|_..n..刂*lm

基于SSH网上银行综合管理系统_基于ssh的网上银行-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏5次。内容简述:该系统体系结构包括:视图层,应用服务层,数据处理层。系统功能包括:账户管理,转账管理,付款管理,系统管理,统计查询。本课题的目的是使银行账目管理清晰化,透明化,便于操作,易于管理,实现功能:(1)账户管理:对于未注册用户开户:进入账户申请界面,填写注册信息,经过系统审核。//用户信息:用户名。密码。姓名。身份证号。手机号。注册成功,管理员审核以后才可以登录,登录的个人信息里面系统自动..._基于ssh的网上银行

文章17 ngx_http_request_t结构体详解_ngx_http_headers_in_t 目录-程序员宅基地

文章浏览阅读2w次,点赞2次,收藏13次。欢迎转载,转载请注明http://blog.csdn.net/yankai0219/article/details/8220621由于本人能力有限,对于这些结构体的成员变量的解释,肯定有所差池,还请大家指出,大家共同学习主要内容:0.序一、ngx_http_request_t结构体解释二、ngx_http_request_body_t结构体三ngx_http_ngx_http_headers_in_t 目录

js把年月日时间转化成刚刚,几分钟前,几小时前,几天前(完整代码)_js 把日期时间转化为几分钟前-程序员宅基地

文章浏览阅读4.6k次,点赞2次,收藏10次。&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;script&gt; var pretime = &q_js 把日期时间转化为几分钟前

随便推点

在Android studio中生成release版本,并导出为apk,安装到手机上_android studio release-程序员宅基地

文章浏览阅读1.7w次,点赞15次,收藏61次。Android studio 中如何生成release发行版本,并导出为apk格式    1. 打开电脑,在左下角菜单里找到命令提示符,并以管理员身份运行。    2.在命令行中输入以下命令:keytool -genkey -alias huaming -keypass 123456 -keyalg RSA -keysize 2048 -validity 36500 -keystore E:\key\key.keystore -storepass 123456 _android studio release

论文笔记 | code pretraining(代码预训练系列)_intellicode compose: code generation using transfo-程序员宅基地

文章浏览阅读4.2k次,点赞5次,收藏38次。文章目录Pre-trained contextual embedding of source codeCodeBERT: A Pre-trained model for programming and natural languagesGraphCodeBert: Pre-training code representations with data flowContrastive code representation learningInferCode: Self-Supervised Learning_intellicode compose: code generation using transformer

CodeForces 50 A.Domino piling(水~)_codeforces domino filing-程序员宅基地

文章浏览阅读716次。Description给出一个m∗nm*n的区域,问最多可以放多少个2∗12*1的砖Input两个整数m,n(1≤m,n≤16)m,n(1\le m,n\le 16)Output输出最多可以放多少块砖Sample Input2 4Sample Output4Solutionn,mn,m有一个为偶数,显然可以铺满,ans=nm2ans=\frac{nm}{2}n,mn,m均为奇数,显然前n−1n-1列_codeforces domino filing

win11修改任务栏中时间的字体颜色_win11时间颜色改成白色-程序员宅基地

文章浏览阅读1.8w次,点赞29次,收藏31次。TranslucentTB设置win11位透明任务栏时,字体位黑色,看不到的解决方法按“win+R”或者点击开始菜单,找到运行,在运行输入框里面输入“regedit”,打开注册表编辑器如下图所示:进入路径下修改:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\PersonalizeColorPrevalence # 值=0 黑色;值=1或2 白色..._win11时间颜色改成白色

python绘图时将输入的乱序横坐标进行重新排序_python 按照横坐标排序-程序员宅基地

文章浏览阅读2.7k次。最近用tkinter制作exe程序时,要实现程序绘图可视化功能,绘制的折线图是展示每年的各个指标,输入的年份可能不按照从小到大的顺序,但是要求绘制出来的图必须按照年份的顺序,不然岂不是很傻下面截取了核心代码来实现该功能。# 首先生成一个原始的list,用于获取横坐标及各折线的纵坐标,这里list1[0]是年份,1-5存放纵坐标list1=[[],[],[],[],[],[]]list1[0].append(x)list1[1].append(a1)list1[2].append(c1)l_python 按照横坐标排序

集合的二进制表示。_集合中的二进制是什么-程序员宅基地

文章浏览阅读1.9k次。一些不大的数的集合,可以用二进制的形式来表示,注意这里的集合没有重复元素。集合的存储方法是用一串二进制的数存,第i位表示i这个数是否在集合中。设集合中最大的数不超过(1集合的运算因为是二进制表示,A|B、A&B、A^B、分别对应集合的并,交和对称差。子集 元素的输出从1到n枚举,如果在s中就输出,代码:void print_element(int n,int s){_集合中的二进制是什么