【发布时间】:2013-06-20 08:13:14
【问题描述】:
我有两个 JSP 页面显示来自两个不同操作的两个列表:页面 A 显示员工列表,页面 B 显示部门列表。
两个页面的顶部都有一个共同的文本字段(包含在第三个 JSP 页面中),用于按姓名搜索员工:
<s:form action="searchEmployeesByName">
<s:textfield name="employeeName" />
<s:submit>
</s:form>
搜索操作是 EmployeeAction 类的一部分,我可以加载页面 A 并毫无问题地执行搜索。
但是,在加载页面B时,我遇到了ognl.NoSuchPropertyException,因为属性employeeName不在DepartmentAction的ValueStack上。
我该如何解决这个问题?有什么方法可以从DepartmentAction 访问EmployeeAction 中的employeeName?或者我应该如何重新组织我的操作来执行常见的搜索功能?
这是我的动作配置文件:
<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>
【问题讨论】:
-
显示您的操作配置。
-
我认为您在使用不同的命名空间时遇到了麻烦。尝试在
<s:form>标签中使用namespace属性。
标签: java jsp struts2 parameter-passing valuestack