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

Struts2-使用xml文件验证失败会导致操作类参数从生成的jsp中消失,struts2,struts,Struts2,Struts,我有一个甲级: class A extends ActionSupport{ int someId; // getters/setters public String execute(){ setSomeId(2); return SUCCESS; } public String save(){ // something } } 在struts.xml中,我配置了一个操作“ViewId,它将我们带到默认方法execute,其中设置了some

我有一个甲级:

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
”中调用的操作,将我们带到action类的Save方法。但是,我在相应的validation.xml文件
A-Save-validation.xml
中进行了一些检查,这将检查输入的电子邮件的格式。问题是,如果xml验证失败,我们将返回show.jsp,但viewId参数现在不可用。为什么会这样


输入页面应与之前的用户相似。只有现在已验证的字段才应具有与其关联的错误页。任何解决方法?

如@Umesh所说,在调用动作的方法之前,在相应的interecptor上进行验证

当验证失败时,将永远不会调用该操作的方法,并且您将被带到输入结果

为了实现您的目标,您有一些选择:

  • 在您的操作中实现preparable接口
  • 在你的方法中形成验证
  • 在jsp中使用s:action来调用填充相关节的操作之前,先填充要填充的项

  • 1可能是最简单的。我也喜欢选项3。

    这是因为您的实际方法永远不会被调用,因为验证失败,简单的方法是使用prepare方法,因为它将在工作流拦截器返回验证错误之前被调用。非常感谢您提供的信息。请将此作为答复,以便我能接受。