<% 
	Collection<String> imports = model.getImports();
	for (String anImport : imports) { 
%>
import <%= anImport %>;
<% 
	}
%>

