3.13. Handling Date Input Fields

Problem

You want to allow a user to input a value for a calendar date.

Solution

First, only use String form fields to hold the input date values. If the user can manually type in the date, it helps if you provide graphical Calendar control, either client- or server-based, that can populate the date input fields automatically. When the date value is submitted, validate the input using the Struts Validator.

Here's a DynaActionForm, JSP page, and Action that demonstrate this approach. The DynaActionForm is declared with the following form-bean element:

<form-bean name="DateForm" 
           type="org.apache.struts.validator.DynaValidatorForm">
    <!-- Date 1 -->
    <form-property name="month" type="java.lang.String"/>
    <form-property name="day" type="java.lang.String"/>
    <form-property name="year" type="java.lang.String"/>
    <!-- Birth Date-->
    <form-property name="birthDateString" type="java.lang.String"/>
    <!-- Date 3 -->
    <form-property name="monthOpt" type="java.lang.String"/>
    <form-property name="dayOpt" type="java.lang.String"/>
    <form-property name="yearOpt" type="java.lang.String"/>
</form-bean>

The JSP page shown in Example 3-19 (date_test.jsp) renders fields for inputting data for these three variations of date formats. The first variation uses three numeric fields to accept the month, day, and year. The second variation accepts the date as a single value in mm/dd/yyyy format. This variation utilizes a JavaScript calendar that can be used to pick the value. The third variation ...

Get Jakarta Struts Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.