自定义类型转换器实例---生日输入输出
来源:互联网 发布:苏州掌柜软件 编辑:程序博客网 时间:2024/05/18 02:02
在网页date.jsp中提供一个文本框和提交按钮,按照“年-月-日”的形式提交生日,例如:1995-11-10,自定义一个转换器,在网页show.jsp中分别输出年、月、日,并根据当前系统日期显示年龄(实岁),例如:如果当前日期为2015年11月1日,则显示19岁;如果当前日期为2015年11月11日,则显示20岁。
index.jsp
<s:form action="myBirthday" method="post"><s:textfield name="bir" label="请输入出生日期(XXXX-XX-XX)"></s:textfield><s:submit value="提交"></s:submit></s:form>
success.jsp
<body> <s:property value="bir"/><br> 年: <s:property value="bir.year"/><br> 月:<s:property value="bir.month"/><br> 日:<s:property value="bir.day"/><br> <br> 年龄:<%=session.getValue("age") %> </body>
Javabean
public class Birthday {private String year;public String getYear() {return year;}public void setYear(String year) {this.year = year;}public String getMonth() {return month;}public void setMonth(String month) {this.month = month;}public String getDay() {return day;}public void setDay(String day) {this.day = day;}private String month;private String day;}
Action
public class LoginAction extends ActionSupport{private Birthday bir;public Birthday getBir() {return bir;}public void setBir(Birthday bir) {this.bir = bir;}public String execute() throws Exception{Calendar cal = Calendar.getInstance(); int yearNow = cal.get(Calendar.YEAR);int monthNow = cal.get(Calendar.MONTH)+1; //因为Java规定起始时间为1900-0-1;int dayNow = cal.get(Calendar.DAY_OF_MONTH);int yearBirth=Integer.parseInt(bir.getYear());int monthBirth=Integer.parseInt(bir.getMonth());int dayBirth=Integer.parseInt(bir.getDay());int age=yearNow-yearBirth;if(monthNow<=monthBirth){if(monthNow == monthBirth){if (dayNow < dayBirth) age--; }else{age--;}}ActionContext actionContext = ActionContext.getContext(); Map session = actionContext.getSession(); session.put("age", age);return "success";}}
converter
public class MyTypeConverter extends StrutsTypeConverter{public Object convertFromString(Map arg0,String[] arg1,Class arg2){Birthday bir=new Birthday();String[] str=arg1[0].split("-");bir.setYear(str[0]);bir.setMonth(str[1]);bir.setDay(str[2]);return bir;}public String convertToString(Map arg0,Object arg1){Birthday bir=(Birthday)arg1;return "["+bir.getYear()+"-"+bir.getMonth()+"-"+bir.getDay()+"]";}}
注册器:
bir=com.adam.test.converter.MyTypeConverter
Struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="default" extends="struts-default"><action name="myBirthday" class="com.adam.test.action.LoginAction"><result name="success">/success.jsp</result></action></package></struts>
1 0
- 自定义类型转换器实例---生日输入输出
- 自定义类型转换器实例:
- Struts2的自定义类型转换器实例
- 数组类型转换器实例
- 集合类型转换器实例
- 自定义类型转换器
- Struts2自定义类型转换器
- struts2 自定义类型转换器
- 自定义类型转换器
- struts2自定义类型转换器
- Struts2自定义类型转换器
- 自定义类型转换器
- 自定义类型转换器
- Struts2自定义类型转换器
- 自定义Struts2类型转换器
- struts2自定义类型转换器
- 自定义类型转换器
- struts2 自定义类型转换器
- iOS security.framework
- Java HmacSHA256
- Android Http请求
- Fragment的正确使用方式
- ubuntu下搭建android开发环境核心篇安装AndroidStudio、sdk、jdk(by 星空武哥)
- 自定义类型转换器实例---生日输入输出
- 迅捷PDF编辑器如何编辑PDF文字图文教程
- C++中char*和LPCTSTR类型的转化
- Android开发艺术探索
- ubuntu 14.04中安装 ruby on rails 环境(填坑)
- collectionview通过设置contentInset方式添加表头Header,影响MJRefresh使用的解决方案
- asm(” RPT #7 || NOP”)那点事
- Cocos2d-lua(五)config.json 和 config.lua
- Android Studio使用Lombok消除冗长的 java代码