Struts2提交表格不';t导航到新视图

Struts2提交表格不';t导航到新视图,struts2,struts,apache-tiles,tiles-3,Struts2,Struts,Apache Tiles,Tiles 3,我正在使用Struts2(版本2.5.14.1)和Spring和Tiles插件 这是我的(相关)struts.xml配置: <package name="enrollment" namespace="/enrollment" extends="struts-bean-validation"> <result-types> <result-type name="tiles" class="org.apache.struts2.views.tiles.Til

我正在使用
Struts2
(版本
2.5.14.1
)和
Spring
Tiles
插件

这是我的(相关)
struts.xml
配置:

<package name="enrollment" namespace="/enrollment" extends="struts-bean-validation">
  <result-types>
    <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
  </result-types>

  <action name="start" class="io.shido.struts.action.enrollment.StartAction">
    <result name="success" type="tiles">enrollment.start.tiles</result>
  </action>
  <action name="personal-info" class="io.shido.struts.action.enrollment.PersonalInfoAction">
    <result name="input" type="tiles">enrollment.personal-info.tiles</result>
    <result name="success" type="tiles">enrollment.billing-info.tiles</result>
  </action>
  <action name="billing-info" class="io.shido.struts.action.enrollment.BillingInfoAction">
    <result name="input" type="tiles">enrollment.billing-info.tiles</result>
    <result name="success" type="tiles">enrollment.finish.tiles</result>
  </action>
  <action name="finish" class="io.shido.struts.action.enrollment.FinishAction">
    <result name="success" type="tiles">enrollment.finish.tiles</result>
  </action>
</package>
问题是,每当我提交表单时,我都希望Bean验证能够启动并检查所有带注释的字段(检查,这正在发生),当一切正常时,将流发送到
/WEB-INF/content/enrollment/billing info.jsp
(在Tiles中定义为
enrollment.billing info.Tiles
)……但我看到的是(几乎是)带有错误标签的“账单信息”表单。见下图:

URL和标签都应该更改。要将樱桃放在顶部,如果我再次单击
Continue
按钮,表单将正确显示


有什么线索吗?

我没有直接的答案,但您可以尝试使用重定向操作,而不是多次使用磁贴

所以你可以在这里试试:

 <action name="personal-info" class="io.shido.struts.action.enrollment.PersonalInfoAction">
    <result name="input" type="tiles">enrollment.personal-info.tiles</result>
    <result name="success" type="redirectAction">
        <param name="actionName">billing-info</param>
    </result>
 </action>

registration.personal-info.tiles
账单信息
如果需要传输某种id来显示数据,可以在struts.xml中使用其他参数,如下所示:

<!-- rest as above -->
<result>
<param name="param1">${value1}</param>
</result> 

${value1}

param1
必须在两个操作中都有有效的getter/setter方法来传输信息。

这正是我想要的!最后我做了
计费信息
,这两种方式都可以。很高兴我可以帮助你,只是附带说明:通过
重定向
,你正在使用struts开发人员建议不要再使用的内部struts链接()。我的示例中有一个输入错误,它是
重定向操作
,请看这里:啊!说得好…我不知道。那我就用推荐的方法吧!
 <action name="personal-info" class="io.shido.struts.action.enrollment.PersonalInfoAction">
    <result name="input" type="tiles">enrollment.personal-info.tiles</result>
    <result name="success" type="redirectAction">
        <param name="actionName">billing-info</param>
    </result>
 </action>
<!-- rest as above -->
<result>
<param name="param1">${value1}</param>
</result>