The difference between tagsupport and bodytagsupport is mainly whether the label handling class needs to interact with the tag. If you don't need to interact, use tagsupport, otherwise you don't need to interact with BodyTagsupport.
What does interaction mean? My understanding is whether the label handling whether the class is to read the contents of the label and change the content returned by the label.
It should be noted here that tagsupport can also be organized, and if it is understood that tagsupport is a label without a body, and Bodytagsupport is incorrect.
Of course, tags implemented with Tagsupport can be implemented with Bodytagsupport, which is simple because BodyTagsupport inherits tagsupport.