как проверить формат даты в struts2

я пытаюсь предупредить пользователя, когда он ввел дату в формате, отличном от (ДД-МЕСЯЦ-ГГГГ)

Проблема, с которой я столкнулся, заключается в том, что я использовал проверку xml для проверки моего jsp. когда я погуглил, у нас есть только проверка диапазона дат в проверке struts2 xml. это мой jsp.

<s:form action="capturePolicyPrgm">
    <s:div class="table">
        <s:textfield name="clientNo" label="CLIENT NUMBER" size="20"  />                    
        <s:textfield name="lifewardsCard" label="LIFE WARDS CARD NUMBER" size="20"/>                    
        <s:textfield name="policyCode" label="REFERRING POLICY NO" size="20"/>
        <s:select name="companyName" label="COMPANY"
            list="{'BIHL','BLIL','BIFM','LG','LEA'}" /> 
        <s:textfield name="doc" label="INCEPTION DATE" size="20"/>
        <s:select name="product" label="COVER ID"
            list="{'Card Holder','Spouse','Child 22-25 Yrs','Child 16-21 Yrs','Child 6-15 Yrs','Child 0-5(incl.Stillborn)'}" />             
        <s:textfield name="expiryDate" label="TERMINATION DATE" />
        <s:textfield name="premium" label="PREMIUM" />
        <tr>
            <td><s:submit value="submit" theme="simple" /></td>
            <td><s:submit type="button" theme="simple" onclick="clear();return false;"
                    value="clear" /></td>
        </tr>
    </s:div>
</s:form>

вот моя проверка xml

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
   "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
 <validators>
  <field name="lifewardsCard">
    <field-validator type="requiredstring">
    <param name="minLength">16</param>
    <param name="maxLength">16</param>
        <message>Card number is required and must be of length 16</message>
    </field-validator>
</field>    
<field name="policyCode">
    <field-validator type="requiredstring">
        <message>Please enter referring Policy No.</message>
    </field-validator>
</field>
<field name="doc">
    <field-validator type="requiredstring">
        <message>Please Enter Policy Commencement Date.</message>
    </field-validator>
</field>    
<field name="expiryDate">
    <field-validator type="requiredstring">
        <message>Please Enter Policy Expiry Date.</message>
    </field-validator>
</field>

мой класс действий реализует интерфейс, управляемый моделью. пожалуйста, помогите, как я могу проверить это с помощью xml.


person Ashok Ogirala    schedule 04.10.2015    source источник
comment
Возможный дубликат проверки даты в struts2   -  person Govinda Sakhare    schedule 04.10.2015
comment
Можете ли вы показать пример правильной даты.   -  person Aleksandr M    schedule 05.10.2015
comment
Или используйте метод проверки вместо xml   -  person IlGala    schedule 08.10.2015


Ответы (1)


Почему бы не проверить в java, а не в xml?

public static boolean isDateValid(String pDateToValidate, String pDateFormat)
{

    if (pDateToValidate == null)
    {
      return false;
    }

    SimpleDateFormat lSdf = new SimpleDateFormat(pDateFormat);
    lSdf.setLenient(false);

    try
    {

      // if not valid, it will throw ParseException
      Date lDate = lSdf.parse(pDateToValidate);
      System.out.println(lDate);
    }
    catch (ParseException e)
    {
      e.printStackTrace();
      return false;
    }

    return true;
}

public void validate()
{
    if (this.isDateValid(this.getExpiryDate(), "dd-MMM-yyyy") == false)
    {
      this.addFieldError("expiryDate", "Could not parse date, please enter in the format dd-MMM-yyyy.");
    }
}
person Suipaste    schedule 22.10.2015