В стеке по умолчанию есть перехватчик parms, который привязывает параметры к установщикам, найденным в вызываемом действии. Это прекрасно работает, когда вы знаете имя параметра. Например, если параметром запроса является «employee.name», его можно связать со свойством моего действия, у которого есть свойство «employee» со свойством «name». Чтобы заставить его работать, мне нужно знать, каким именем будет имя параметра запроса, и добавить в моё действие set -mployee () объекта типа Employee, или это тоже может быть Map.
Что если я хочу позволить действию связать этот параметр с другим свойством, которое я не знаю, каким будет. Допустим, действие получает в качестве параметра имя, для которого будет задан параметр запроса.
<s:action name="showEmployee" executeResult="true">
<s:param name="employeePrefix">xyz.wz.empl</s:param>
</s:action>
Это означает, что действие связывает все параметры сотрудника с xyz.wz.empl.
Например, скажем, параметр запроса имеет следующее:
xyz.wz.empl.name = Alfredo
xyz.wz.empl.lastName = Осорио
Я бы хотел привязать это к свойству моего действия, скажем, сотруднику Map, но это не сработает, потому что параметр запроса - xyz.wz.empl. Как связать этот динамический параметр с вызванным действием, используя параметр, который был отправлен в действие (employeePrefix).
Я мог бы попросить параметры запроса
ActionContext.getContext().getParameters()
и выполнить преобразование самостоятельно, но я думаю, что должен быть другой способ явного вызова чего-либо из инфраструктуры Struts 2 для преобразования, как это делает com.opensymphony.xwork2.interceptor.ParametersInterceptor.
Спасибо.