有个组件可以验证,不过没必要搞这么复杂,吃饱撑着,简单的JAVASCRIPT就搞定的。

解决方案 »

  1.   

    struts-comfig.xml
    ***********************
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
              "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
             
    <struts-config><!--
    <data-sources>
     <data-source>
      <set-property property="autoCommit" value="true"/>
      <set-property property="description" value="Resin Data Source"/>
      <set-property property="driverClass" value="com.caucho.jdbc.mysql.Driver"/>
      <set-property property="maxCount" value="10"/>
      <set-property property="minCount" value="2"/>
      <set-property property="user" value="admin"/>  
      <set-property property="password" value="admin"/>
      <set-property property="url" value="jdbc:mysql-caucho://localhost:3306/storefront"/>  
     </data-source>
    </data-sources>
    --><form-beans> 
      <form-bean name="loginForm" type="com.oreilly.struts.storefront.security.LoginForm"/>        
      <form-bean 
          name="itemDetailForm"
          dynamic="true"
          type="org.apache.struts.action.DynaActionForm">
            <form-property name="view" type="com.oreilly.struts.storefront.catalog.view.ItemDetailView"/>        
      </form-bean>
      
      <form-bean
        name="checkoutForm"
        dynamic="true"
        type="org.apache.struts.validator.DynaValidatorForm">
        <form-property name="firstName" type="java.lang.String"/>
        <form-property name="lastName" type="java.lang.String"/>
        <form-property name="address" type="java.lang.String"/>    
        <form-property name="city" type="java.lang.String"/>
        <form-property name="state" type="java.lang.String"/>
        <form-property name="postalCode" type="java.lang.String"/>
        <form-property name="country" type="java.lang.String"/>
        <form-property name="phone" type="java.lang.String"/>    
      </form-bean>
      
      <form-bean
        name="paymentForm"
        dynamic="true"
        type="org.apache.struts.action.DynaActionForm">
        <form-property name="phone" type="java.lang.String"/> 
      </form-bean>
      
    </form-beans> <global-exceptions>
      <exception 
        key="global.error.invalidlogin"
        path="/security/signin.jsp"
        scope="request"
        type="com.oreilly.struts.storefront.framework.exceptions.InvalidLoginException"/>  
     </global-exceptions><global-forwards>
     <forward name="Login" path="/security/signin.jsp" redirect="true"/>
     <forward name="SystemFailure" path="/common/systemerror.jsp"/>
     <forward name="SessionTimeOut" path="/common/sessiontimeout.jsp" redirect="true"/>
     
     <forward name="welcome" path="/action/home"/>
    </global-forwards><action-mappings>
     <!-- Security Actions Begin -->
     <action
       path="/viewsignin"
       parameter="/security/signin.jsp"
       type="org.apache.struts.actions.ForwardAction"   
       scope="request"   
       name="loginForm"
       validate="false"
       input="/index.jsp">   
     </action> 
       
     <action
       path="/signin"
       type="com.oreilly.struts.storefront.security.LoginAction"
       scope="request"
       name="loginForm"
       validate="true"
       input="/security/signin.jsp">
       <forward name="Success" path="/action/home"/>
       <forward name="Failure" path="/security/signin.jsp" redirect="true"/>
     </action> 
     
     <action
       path="/signoff"
       type="com.oreilly.struts.storefront.security.LogoutAction"
       scope="request"   
       validate="false"
       input="/security/signin.jsp">
       <forward name="Success" path="/action/home"/>   
     </action> <action
       path="/home"
       type="com.oreilly.struts.storefront.catalog.FeaturedPageAction"
       scope="request"   
       validate="false"
       input="index.jsp">
       <forward name="Success" path="/index.jsp"/>   
     </action>   
     <!-- Security Actions End -->
     
      <!-- Shopping Cart Actions Begin -->
     <action
       path="/viewcart"
       parameter="/order/shoppingcart.jsp"
       type="org.apache.struts.actions.ForwardAction"   
       scope="request"      
       validate="false">   
     </action>
     
     <action path="/cart"
       type="com.oreilly.struts.storefront.order.ShoppingCartActions"   
       scope="request"
       input="/order/shoppingcart.jsp"
       validate="false"
       parameter="method">
       <forward name="Success" path="/order/shoppingcart.jsp" redirect="true"/>
     </action> 
     <!-- Shopping Cart Actions End -->
     
     <!-- Catalog Actions Begin -->
     <action
        path="/viewitemdetail"
        name="itemDetailForm"
        input="/index.jsp"
        type="com.oreilly.struts.storefront.catalog.GetItemDetailAction"   
        scope="request"      
        validate="false">
        <exception 
            key="global.error.invalidlogin"
            path="/index.jsp"
            scope="request"
        type="com.oreilly.struts.storefront.framework.exceptions.DatastoreException"/> 
        
        <forward name="Success" path="/catalog/itemdetail.jsp"/>
     </action> 
     <!-- Catalog Actions End -->
     
     <!-- Order Actions Begin -->
     <action
         path="/begincheckout"     
         name="checkoutForm"
         input="/order/shoppingcart.jsp"
         type="com.oreilly.struts.storefront.order.CheckoutAction"   
         scope="session"
         validate="false">
         <forward name="Success" path="/order/shipping.jsp"/>
     </action> 
     
     <action
       path="/getPaymentInfo"
       parameter="/order/payment.jsp"
       type="org.apache.struts.actions.ForwardAction"   
       scope="session"   
       name="checkoutForm"
       validate="true"
       input="/order/shipping.jsp">   
     </action> 
     
     <!-- Order Actions End -->
     
     
    <action path="/processcheckout"
      type="com.oreilly.struts.storefront.order.ProcessCheckoutAction"  
      scope="request"
      input="/checkout.jsp"
      name="checkoutForm"
      parameter="action"> 
      <forward name="Success" path="/order/ordercomplete.jsp"/>
    </action>
     
     
    </action-mappings>
      
    <controller 
      contentType="text/html;charset=UTF-8"
      debug="3"
      locale="true"
      nocache="true"
      processorClass="org.apache.struts.action.RequestProcessor"/>
      
    <message-resources 
    parameter="StorefrontMessageResources" 
    null="false"/>
    <message-resources 
    key="IMAGE_RESOURCE_KEY" 
    parameter="StorefrontImageResources" 
    null="false"/>

    <plug-in className="com.oreilly.struts.storefront.service.memory.StorefrontMemoryDatabasePlugIn">
      <set-property property="pathname" value="/WEB-INF/database.xml"/>
    </plug-in>
      
    <plug-in className="com.oreilly.struts.storefront.service.StorefrontServiceFactory"/>  
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
      <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
    </plug-in> 
    </struts-config>
      

  2.   

    validation.xm.
    ****************
    <form-validation>
       <global>
          <constant>
            <constant-name>phone</constant-name>
            <constant-value>^\(?(\d{3})\)?[-| ]?(\d{3})[-| ]?(\d{4})$</constant-value>
          </constant>             
          <constant>
            <constant-name>zip</constant-name>
            <constant-value>^\d{5}\d*$</constant-value>
          </constant>             
       </global>
       <formset>
          <constant>
            <constant-name>zip</constant-name>
            <constant-value>^\d{5}(-\d{4})?$</constant-value>
          </constant>             
          
          <form name="checkoutForm">
             <field 
               property="firstName"
               depends="required,mask">
               <arg0 key="label.firstName"/>           
               <var>
                 <var-name>mask</var-name>
                 <var-value>^[a-zA-Z]*$</var-value>
               </var>             
             </field>             
             
             <field    
               property="lastName"
               depends="required,mask,maxlength">
               <msg name="mask" key="label.lastName"/>
               <arg0 key="label.lastName"/>
               <arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
               <var>
                 <var-name>mask</var-name>
                 <var-value>^[a-zA-Z]*$</var-value>
               </var>             
               <var>
                 <var-name>maxlength</var-name>
                 <var-value>15</var-value>
               </var>
             </field>                        
          
             <field 
               property="address"
               depends="required,mask">
               <arg0 key="label.address"/>
               <var>
                 <var-name>mask</var-name>
                 <var-value>^\w+$</var-value>
               </var>
             </field>             
             
             <field 
               property="city"
               depends="required,mask">
               <arg0 key="label.city"/>           
               <var>
                 <var-name>mask</var-name>
                 <var-value>^[a-zA-Z]*$</var-value>
               </var>
             </field>         
             
             <field 
               property="state"
               depends="required,mask">
               <arg0 key="label.state"/>
               <var>
         <var-name>mask</var-name>
         <var-value>^[a-zA-Z]*$</var-value>
               </var>
             </field>         
             
             <field 
               property="postalCode"
               depends="required,mask">
               <arg0 key="label.postalCode"/>
               <arg1 name="minlength" key="${var:minlength}" resource="false"/>
               <var>
                 <var-name>mask</var-name>
                 <var-value>${zip}</var-value>
               </var>             
             </field>         
             
             <field 
               property="country"
               depends="required,mask">
               <arg0 key="label.country"/>
               <var>
         <var-name>mask</var-name>
         <var-value>^[a-zA-Z]*$</var-value>
               </var>
             </field>         
             
             <field 
               property="phone"
               depends="required,mask">
               <arg0 key="label.phone"/>
               <arg1 name="minlength" key="${var:minlength}" resource="false"/>
               <var>
                 <var-name>mask</var-name>
                 <var-value>${phone}</var-value>
               </var>
             </field>         
          </form>            
       </formset>   
    </form-validation>
      

  3.   

    同意007JavaKing(接分) ,使用validator验证框架.网上这方面资料很多的.