我的 struts 应用程序出现问题,要求用户使用 userUpdateAction 的表单操作更新他的详细信息,而表单 bean 是 UserUpdateForm。我有 servlet 过滤器来检查用户是否已经登录。如果他没有登录,我将转发到登录操作。如果他登录,我将向他显示更新表单,在所有成功验证后将其转发到空白页面。
struts-config.xml
<action path="/userUpdateAction" type="com.vaannila.action.userUpdateAction" name="UserUpdateForm" input="/update.jsp" validate="true" scope="request">
<forward name="success" path="/updateSuccess.jsp" />
<forward name="error" path="/update.jsp" />
</action>
动作类
public class userUpdateAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) throws Exception {
UserUpdateForm userform = (UserUpdateForm) form;
System.out.println("form values:" + userform.getEmail());
return mapping.findForward("success");
}
}
转发名称是正确的(成功在类和 struts-config.xml 中都是正确的)。
execute 方法也正确地覆盖了 Action 的执行方法。
在tomcat控制台中我可以看到
user already logged in start chain execution
2 Feb, 2012 9:12:10 AM org.apache.struts.chain.commands.servlet.CreateAction createAction
INFO: Initialize action of type: com.vaannila.action.userUpdateAction
errors : {}
userUpdateAction 已初始化,但它不执行execute
方法并转到空白页。