generate view html with subviews recursively