BirthAction.java
package com.action; import java.util.Calendar; import java.util.Map; import com.bean.Birth; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class BirthAction extends ActionSupport { private Birth bir; public Birth getBir() { return bir; } public void setBir(Birth 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; 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--; } } Map session = ActionContext.getContext().getSession(); session.put("age", age); return SUCCESS; } }
BirthConverter.java:
package com.action; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; import com.bean.Birth; public class BirthConverter extends StrutsTypeConverter { @Override public Object convertFromString(Map arg0, String[] arg1, Class arg2) { Birth bir = new Birth(); String[] str = arg1[0].split("-"); bir.setYear(str[0]); bir.setMonth(str[1]); bir.setDay(str[2]); return bir; } @Override public String convertToString(Map arg0, Object arg1) { Birth bir = (Birth)arg1; return "[" + bir.getYear() + "-" + bir.getMonth() + "-" + bir.getDay() + "]"; } }
BirthAction-conversion.properties:
bir=com.action.BirthConverter
Birth.java:
package com.bean; public class Birth { private String year; private String month; private String day; 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; } }
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="myBirth" class="com.action.BirthAction"> <result name="success">/show.jsp</result> </action> </package> </struts>
index.jsp
<%@taglib uri="/struts-tags" prefix="s" %> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Date界面</title> </head> <body> <s:form action="myBirth" method="post"> <s:textfield name="bir" label="请输入生日"></s:textfield> <s:submit value="提交"></s:submit> </s:form> </body> </html>
show.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Date界面</title> </head> <body> 生日:<s:property value="bir"/><br> 年:<s:property value="bir.year"/><br> 月:<s:property value="bir.month"/><br> 日:<s:property value="bir.day"/><br> 年龄:<%=session.getValue("age") %> </body> </html>