Validation 验证后如何将struts2操作重定向到url?

Validation 验证后如何将struts2操作重定向到url?,validation,url,redirect,struts2,Validation,Url,Redirect,Struts2,我有一个像这样的url创建操作 if (this.sequence.equals("") ) { action= "input"; } else {url = "/files/" + testHTML.getName(); action= "redirect"; } return action; 在我的struts.xml中,我的操作已声明 <interceptor-ref name="completeStack

我有一个像这样的url创建操作

if (this.sequence.equals("") ) {
       action= "input";
   } else {url = "/files/" + testHTML.getName();
         action= "redirect";

    }
      return action;
在我的struts.xml中,我的操作已声明

        <interceptor-ref name="completeStack"/>
        <interceptor-ref name="execAndWait">
            <param name="delaySleepInterval">500</param>
        </interceptor-ref>
        <result name="wait">testwait.jsp</result>
        <result name="input">test.jsp</result>
         <result name="redirect" type="redirect">${url}</result>
    </action>


500
testwait.jsp
test.jsp
${url}

启动应用程序时,会创建url,但不会重定向到此新页面,而是重定向到test.jsp页面,并且会出现验证错误消息。有人知道吗?

如果您使用的是验证方法,并且如果存在验证错误,struts将返回结果name=“input”。在你的情况下,加入重定向

     <result name="input" type="redirect">${url}</result>
${url}

您的原始代码示例看起来是正确的。以下是一些需要检查的事项:

  • 您的操作是否有
    getUrl()
    方法?结果的
    ${url}
    部分依赖于该方法来获取
    url
    属性
  • 您是否已验证在每种情况下都返回了正确的结果?e、 例如,在else块中使用“重定向”,否则使用“输入”

url(HTML页面)只有在操作中没有错误时才会创建,我想要的是看到这个新页面,因为我可以看到您试图实现的目标,首先您可以重定向到另一个操作,但您只想显示不同的jsp页面,所以为什么不像这样尝试${dynamicPage}其中${dynamicPage}=“pathToThePage”是的,我有一个getUrl()方法,每种情况下都返回正确的结果…当我记录我的java操作时,我有一个url页面的链接,但在调试模式下的jsp中,相同的值(url)在操作过程中为“null”尝试在
ServletRedirectResult
中设置断点,以查看它是否到达重定向。好的,代码仍在工作,问题来自execandwait拦截器