我是Struts的新手,目前我正在使用struts 1.3来构建简单的联系人应用程序
我想显示数据表包含来自数据库的联系人列表,在同一页面中我想创建一个表单来创建新联系人然后将其插入数据库。
我正在使用Spring bean和hibernate来做数据库操作和逻辑。所以这里是我的流程,我的动作类将调用spring bean,而spring bean将调用dao类为数据库操作做一些逻辑,然后我的动作类将列表放入名为contactList的请求对象,然后在jsp文件中我是使用logicLiterate标记迭代它。
显示表并提交所有工作正常,但是当我在ActionForm中验证,并且我想显示错误消息时,我有一个错误500.这是因为jsp在请求对象中找不到名为contactList的属性,因为如果ActionForm类中存在错误,Struts不会在我的Action类中调用该方法来读取数据库并将其放入请求对象中。我可以尝试在我的ActionForm中调用spring bean,但我担心它不合适,因为如果没有错误,那么我会将spring bean调用两次以进行同样的工作。你建议我做什么?
答案 0 :(得分:0)
我不好意思不仔细阅读文档,现在我明白struts-config.xml中的action标记具有“input”属性,该属性指定了在出现错误时必须转发请求的物理页面。
在我的情况下,我只需要将输入属性指定为当前路径(例如/contacts.do等),以便Action类可以执行其Action方法。
请注意,此请求是转发请求,而不是重定向。