У меня есть две страницы JSP, содержащие два списка из двух разных действий: страница A
отображает список сотрудников, страница B
отображает список отделов.Struts 2 - Могу ли я получить доступ к свойствам другого действия, которое не находится на ValueStack?
Обе страницы имеют общее текстовое поле (в комплекте с третьей страницы JSP) на вершине, чтобы поиск сотрудников по имени:
<s:form action="searchEmployeesByName">
<s:textfield name="employeeName" />
<s:submit>
</s:form>
Действие поиска является частью класса EmployeeAction
и я могу загрузить страницу A
и выполнять поиск без проблем. Однако при загрузке страницы B
я столкнулся с ognl.NoSuchPropertyException
, потому что свойство employeeName
не находится на ValueStack
от DepartmentAction
.
Как я могу решить эту проблему? Есть ли способы доступа к employeeName
от EmployeeAction
от DepartmentAction
? Или как мне реорганизовать мои действия для выполнения общей функции поиска?
Вот мой конфигурационный файл действие:
<struts>
<package name="employee" namespace="/employee" extends="tiles-default">
<action name="getEmployeeList" class="my.package.EmployeeAction"
method="getEmployeeList">
<result name="success">/employee_list.tiles</result>
</action>
<action name="searchEmployeesByName" class="my.package.EmployeeAction"
method="searchEmployeesByName">
<result name="success">/search_results.tiles</result>
</action>
</package>
<package name="department" namespace="/department" extends="tiles-default">
<action name="getDepartmentList" class="my.package.DepartmentAction"
method="getDepartmentList">
<result name="success">/department_list.tiles</result>
</action>
</package>
</struts>
Показать конфигурацию вашего действия. –
Думаю, у вас есть проблемы с разными пространствами имен. Попробуйте использовать атрибут 'namespace' в теге' '. –