如何在struts2中获取响应页面时解析url

时间:2016-12-28 09:17:52

标签: jsp struts2 messages

我正在使用struts和hibernate进行注册我遇到的问题就像我运行我的项目时会得到localhost/ProjectName/registration.jsp

当我提交数据时,数据在数据库中保存数据后成功保存在数据库中我正在寻找registration.jsp作为响应页面,但是时间Url将是localhost/ProjectName/actionName.action这会产生一个问题,如果我刷新页面最后添加的记录将再次添加

Jsp表格

<s:form action="register">
</s:form>

struts.xml中

<action name="register" class="-----------">
<result name="success">registration.jsp</result>
</action>

1 个答案:

答案 0 :(得分:0)

您应该按照PRG pattern回答中提到的this进行操作。创建一个 new 操作,该操作将在重定向操作结果后返回您的JSP页面。

<action name="registration">
  <interceptor-ref name="store"> 
    <param name="operationMode">RETRIEVE</param> 
  </interceptor-ref> 
  <interceptor-ref name="defaultStack" />
  <result name="success">registration.jsp</result>
</action>

<action name="register" class="-----------">
 <interceptor-ref name="store"> 
    <param name="operationMode">STORE</param> 
  </interceptor-ref> 
  <interceptor-ref name="defaultStack" /> 
  <result name="success" type="redirectAction">registration</result>
</action>

您可以使用Message Store Interceptor在HTTP会话中存储操作消息/错误。操作类应该实现ValidationAware

商店拦截器在两个动作之间工作,其中一个存储消息,另一个检索它们。

  

用于存储ValidationAware操作消息/错误的拦截器   和字段错误进入HTTP会话,这样它就可以检索   在稍后阶段。这允许动作的消息/错误和字段   只有特定的HTTP请求才能提供更长的错误。

     

如果不存在会话,则不会存储任何内容并且可以检索   后来。换句话说,应用程序负责打开   会话。

     

STORE模式下,拦截器将存储ValidationAware   动作的消息/错误和字段错误进入HTTP会话。

     

RETRIEVE模式下,拦截器将检索存储的   动作的消息/错误和字段错误并将它们放回到   ValidationAware行动。

     

AUTOMATIC模式下,拦截器将始终检索存储的   动作的消息/错误和字段错误并将它们放回到   ValidationAware操作,以及Action执行后,如果结果是   ServletRedirectResult的一个实例,即操作的消息/错误   和字段错误自动存储在HTTP会话中..