String stringValue = context().request().stringFormValueForKey(attribute.name());
String stringValue = context().request().stringFormValueForKey(key);
    public EOFetchSpecification fetchSpecificationFromRequest(String entityName) {    	EOFetchSpecification fs = null;    	if(context().request().formValueKeys().containsObject(fetchSpecificationKey)) {    		String fsName = context().request().stringFormValueForKey(fetchSpecificationKey);    		if(ERXStringUtilities.stringIsNullOrEmpty(fsName)) {    			EOEntity rootEntity = ERXEOAccessUtilities.entityNamed(session().defaultEditingContext(), entityName);    			    			NSMutableArray qualifiers = new NSMutableArray();    			for(Enumeration e = context().request().formValueKeys().objectEnumerator(); e.hasMoreElements(); ) {    				String key = (String)e.nextElement();    				EOEntity entity = rootEntity;    				EOAttribute attribute = null;    				if(key.indexOf(".") > 0) {    					String path = ERXStringUtilities.keyPathWithoutLastProperty(key);    					key = ERXStringUtilities.lastPropertyKeyInKeyPath(key);    					entity = ERXEOAccessUtilities.destinationEntityForKeyPath(rootEntity, path);    				}    				if(entity != null) {    					attribute = entity.attributeNamed(key);    					if(attribute != null) {    						String stringValue = context().request().stringFormValueForKey(attribute.name());    						if(stringValue != null) {    							Object value = attribute.newValueForString(stringValue);    							NSSelector selector = EOKeyValueQualifier.QualifierOperatorEqual;    							if(stringValue.indexOf('*') >= 0) {    								selector = EOKeyValueQualifier.QualifierOperatorCaseInsensitiveLike;    							}    							qualifiers.addObject(new EOKeyValueQualifier(attribute.name(), selector, value));    						}    					}    				}    			}    			EOQualifier qualifier = null;    			if(qualifiers.count() > 0) {    				qualifier = new EOAndQualifier(qualifiers);    			}    			fs = new EOFetchSpecification(entityName, qualifier, null);    			fs.setUsesDistinct(true);    		} else {    			fs = EOFetchSpecification.fetchSpecificationNamed(fsName, entityName);    			NSMutableDictionary bindings = new NSMutableDictionary();    			Enumeration e = fs.qualifier().bindingKeys().objectEnumerator();    			while(e.hasMoreElements()) {    				String key = (String)e.nextElement();    				String formValue = context().request().stringFormValueForKey(key);    				if(formValue != null) {    					bindings.setObjectForKey(formValue, key);    				}    			}    			    			if(bindings.count() > 0) {    				fs = fs.fetchSpecificationWithQualifierBindings(bindings);    			}    		}    	}    	return fs;    }