1 20 21 package com.methodhead.sitecontext; 22 23 import java.io.Serializable ; 24 import javax.servlet.http.HttpServletRequest ; 25 26 import org.apache.struts.action.ActionMapping; 27 import org.apache.struts.action.ActionErrors; 28 import org.apache.struts.action.ActionError; 29 import org.apache.struts.validator.DynaValidatorForm; 30 import org.apache.log4j.Logger; 31 import java.util.List ; 32 import java.util.ArrayList ; 33 import org.apache.commons.lang.StringUtils; 34 import java.util.Iterator ; 35 import com.methodhead.aikp.AikpForm; 36 37 public class SiteContextForm 38 extends 39 AikpForm 40 implements 41 Serializable { 42 43 public void reset( 44 ActionMapping mapping, 45 HttpServletRequest request ) { 46 47 super.reset( mapping, request ); 48 49 String domainsText = StringUtils.trimToEmpty( ( String )request.getParameter( "domainsText" ) ); 53 54 String [] domains = domainsText.split( "\n" ); 55 56 List list = new ArrayList (); 57 for ( int i = 0; i < domains.length; i++ ) { 58 String s = StringUtils.strip( domains[ i ] ); 59 if ( !StringUtils.isBlank( s ) ) 60 list.add( s ); 61 } 62 63 set( "domains", list ); 64 65 if ( logger_.isDebugEnabled() ) { 66 logger_.debug( "Parsed " + list.size() + " domains from domainsText" ); 67 } 68 } 69 70 public ActionErrors doValidate( 71 ActionMapping mapping, 72 HttpServletRequest request, 73 ActionErrors errors ) { 74 75 String path = ( String )get( "path" ); 76 77 SiteContext siteContext = new SiteContext(); 81 List list = ( List )get( "domains" ); 82 for ( Iterator iter = list.iterator(); iter.hasNext(); ) { 83 String domain = ( String )iter.next(); 84 85 if ( domain.length() > 67 ) { 89 errors.add( 90 "domainsText", new ActionError( "mhf.invaliddomain", domain ) ); 91 break; 92 } 93 94 if ( !domain.matches( "[\\-A-Za-z0-9.]+" ) ) { 98 errors.add( 99 "domainsText", new ActionError( "mhf.invaliddomain", domain ) ); 100 break; 101 } 102 103 if ( siteContext.loadForDomainAndPath( domain, path ) && 107 ( "saveNew".equals( get( "action" ) ) || 108 !get( "id" ).equals( siteContext.get( "id" ).toString() ) ) ) { 109 errors.add( 110 "domainsText", new ActionError( "mhf.domainexists", domain, path ) ); 111 break; 112 } 113 } 114 115 return errors; 116 } 117 118 private static Logger logger_ = Logger.getLogger( SiteContextForm.class ); 119 } 120 | Popular Tags |