Premièrement, au lieu de penser en termes de " avec des champs avec getters et setters "il vous est conseillé de penser en termes de " propriétés des haricots " ici. Struts2 (et la plupart des frameworks java) pensent de cette manière, ils ne se soucient généralement pas (et à juste titre) de savoir si ces "propriétés" sont des champs réels ou non.
La réponse courte à votre question est : non.
Mais sachez que Struts2 est très flexible - quand je dis "non", je veux dire "en utilisant les intercepteurs par défaut". Vous pouvez toujours écrire votre propre intercepteur au lieu de celui par défaut pour faire cela - mauvaise idée IMO.
L'intercepteur qui effectue cette mise en correspondance est (fondamentalement) l'intercepteur intercepteur de paramètres . Extrait de sa documentation :
Cet intercepteur reçoit tous les paramètres à partir de ActionContext#getParameters()
et les place sur la pile de valeurs en appelant ValueStack#setValue(String, Object)
ce qui donne généralement les valeurs suivantes soumises dans une demande de formulaire sont appliquées à une action dans la pile.
Et en regardant dans ValueStack.setValue(String,Object) nous lisons :
Tente de définir un sur une haricot dans la pile avec la valeur donnée en utilisant l'ordre de recherche par par défaut.
Alors voilà.