默認堆棧具有parms攔截器,它將參數綁定到正在調用的操作中找到的setters。當你知道參數的名字時,這很好。例如,如果請求參數是「employee.name」,可以綁定到我的操作的屬性,該屬性具有屬性「名稱」的屬性「employee」。爲了讓它起作用,我需要知道請求參數名稱是哪個名稱,並在我的稱爲setEmployee()的對象類型爲Employee的操作中放置一個setter,或者它也可以是Map。Struts 2動態參數綁定
如果我想讓動作將該參數綁定到另一個屬性,我不知道哪一個屬於哪個屬性,該怎麼辦?假設這個動作接收到一個參數,這個參數將被設置請求參數的名字。
<s:action name="showEmployee" executeResult="true">
<s:param name="employeePrefix">xyz.wz.empl</s:param>
</s:action>
這將意味着要將該員工的所有參數綁定到xyz.wz.empl。 例如假設請求參數有以下幾點: xyz.wz.empl.name =阿爾弗雷多· xyz.wz.empl.lastName =奧索里奧
我想結合,爲我的行爲的性質,讓我們說一個Map員工,但這不會工作,因爲請求參數是xyz.wz.empl。如何使用發送到操作的參數(employeePrefix)將該動態參數綁定到調用的操作。
我可以要求請求參數
ActionContext.getContext().getParameters()
並做轉換自己,但我認爲必須有另一種方式來顯式調用從Struts的東西2架構的轉換,在方式融爲一體。 opensymphony.xwork2.interceptor.ParametersInterceptor的確。
謝謝。