我是开发应用程序的struts2。 动作类的示例代码是
class sampleAction extends Action {
private List<Employee> employee;
public validate(){
--logic for validation
}
public String prepopulate(){
--logic for populating value of employee list
}
--getters and setters
}
现在我的问题是页面加载我调用prepopulate函数并填充员工列表的值。调用页面提交后验证方法,在此期间如果发生某些错误,控制重定向到jsp。但这次员工名单的价值是空的。我在struts2中将此列表用于autocompleter标记。
答案 0 :(得分:4)
我从未使用Struts 2内置验证机制,因为我更喜欢客户端验证以避免额外的往返。这纯粹是个人选择,而不是标准。
首先,我建议您不要使用Action
并使用ActionSupport
:ActionSupport
提供了很多开箱即用的功能,您无需自己做所有事情。
我假设您正在使用defaultStack
,如果是这种情况,则提供开箱即用的Prepare Interceptor
,它负责在调用操作本身之前准备任何值。
在您的情况下,在validate
方法之前调用execute
,因此您永远不会有机会重新填充JSP中所需的值。
您需要确保在操作类中使用prepare()
方法。以下是此拦截器的更多详细信息:
Prepare Interceptor
FAQ: How do we repopulate controls when validation fails