表单提交后的Struts转到空白页面

时间:2012-02-02 03:47:02

标签: tomcat struts servlet-filters

我的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" />

动作类

public class userUpdateAction extends Action{

@Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,

            ServletRequest req, ServletResponse res) throws Exception {

        UserUpdateForm userform = (UserUpdateForm)form;

        System.out.println("form values :"+userform.getEmail());

        return mapping.findForward("success");

    }
}

转发名称是正确的(类和struts-config.xml中的成功是正确的)。 execute方法也正确地覆盖Action execute方法。

在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方法并转到空白页。

1 个答案:

答案 0 :(得分:1)

我在评论部分看到已解决的问题已针对特定用户解决。我有与描述相同的行为(提交http请求,但只返回一个空白页)。希望与其他人分享我的决议,特别是因为这里的初步答案有助于我解决问题。

我的团队和我正在从Struts 1.1升级到1.3(一个大跳跃)。我们的所有动作类都使用perform()方法。事实证明,对于v1.1,不推荐使用perform()并添加了execute()。在v1.2中,删除了perform()。在我们开始升级之前,这些信息从未在我们的初始研究中找到。我不知道为什么我们原来的应用程序编写者多年前都没有使用execute()。

我们更改了我们的动作类以使用execute()方法,所有内容都重新开始工作。

希望这可能在将来节省别人的时间和精力。

Reference to Struts v1.1 API

Reference to Struts v1.2 API