Struts2 - 使用xml文件验证失败会导致操作类参数从生成的jsp中消失

时间:2012-08-01 10:23:49

标签: struts2 struts

我有一个A类:

class A extends ActionSupport{

  int someId;
  // getters/setters

  public String execute(){
    setSomeId(2);
    return SUCCESS;
  }

  public String save(){
   // something
  }

}

struts.xml中,我配置了一个操作“ViewId”,它将我们带到默认方法execute,其中设置了someId。然后,我们将转到jsp页面show.jsp,在那里我可以访问someId值。在show.jsp中,我必须输入一个电子邮件ID,然后提交页面。现在在“Save”中调用的操作将我们带到动作类的save方法。但是,我在相应的validation.xml文件A-Save-validation.xml中进行了一些检查,该文件将检查为格式输入的电子邮件。问题是如果xml验证失败,我们将返回show.jsp,但viewId参数现在不可用。为什么会这样?

输入页面应与之前的用户类似。只有现在验证的字段应该有与之关联的错误页面。对此有何解决方法?

1 个答案:

答案 0 :(得分:1)

就像@Umesh所说,验证发生在相应的interecptor上,之前调用了action的方法。

当验证失败时,永远不会调用操作的方法,您将进入INPUT结果。

为了达到你想要的效果,你有一些选择:

  1. 在您的操作中实施可预付的界面
  2. 在您的方法中执行验证。
  3. 在您要填充的项目之前在您的jsp中使用s:action来调用填充相关部分的操作
  4. 1可能是最简单的。我也喜欢选项3。