La pile par défaut est dotée de l'intercepteur de paramètres qui lie les paramètres aux paramètres trouvés dans l'action appelée. Cela fonctionne bien lorsque vous connaissez le nom du paramètre. Par exemple si un paramètre de requête est "employee.name" qui pourrait être lié à une propriété de mon action qui a une propriété "employee" avec une propriété "name". Afin de le faire fonctionner, j'ai besoin de savoir quel nom le nom du paramètre de demande serait et mettre un setter dans mon action appelée setEmployee() d'un type d'objet employé ou il pourrait être aussi une carte. Et si je veux que l'action lie ce paramètre à une autre propriété que je ne connais pas. Disons que l'action reçoit en paramètre le nom sur lequel sera défini le paramètre de requête.Liaison de paramètre dynamique Struts 2
<s:action name="showEmployee" executeResult="true">
<s:param name="employeePrefix">xyz.wz.empl</s:param>
</s:action>
Cela signifierait à l'action pour lier tous les paramètres de l'employé à xyz.wz.empl. Par exemple, disons que le paramètre de requête a les éléments suivants: xyz.wz.empl.name = Alfredo xyz.wz.empl.lastName = Osorio
Je voudrais lier cela à une propriété de mon action, nous allons dites un employé de Map, mais cela ne fonctionnera pas car le paramètre de requête est xyz.wz.empl. Comment puis-je lier ce paramètre dynamique à l'action invoquée en utilisant le paramètre qui a été envoyé à l'action (employeePrefix).
Je pourrais demander la demande paramètres
ActionContext.getContext().getParameters()
et faire moi-même la conversion, mais je pense qu'il doit y avoir une autre façon d'appeler explicitement quelque chose Struts 2 cadre à la conversion, de la manière que com. opensymphony.xwork2.interceptor.ParametersInterceptor le fait.
Merci.