struts2之addActionMessage的使用

来源:互联网 发布:车间调度遗传算法 pdf 编辑:程序博客网 时间:2024/05/22 01:31

   addActionMessage(),addActionError(),hasFieldErrors()方法是ActionSupport类中的方法,作用在于后天添加信息之后前台可以通过特定的方式获取到,现在我们就特此讲一下addActionMessage()方法,这个方法可以作为提示框,一般用在插入,删除,更新的操作中,下面我老模拟实现一下功能来看看他的效果:

           1.首先需要在继承了actionSupport类中的某个方法中使用addActionMessage()

         如根据id删除数据,删除成功跳到另外一个查询action方法,查询数据再返回前台。

步骤1:

         

 /** * 根据id删除对应周期性事件 * @throws UnsupportedEncodingException  */public String deletePeriodicEventById() throws UnsupportedEncodingException{    if(eventManageService.deletePeriodicEventById(periodicEvent.getId())){    actionMsg="删除成功!";    actionMsg=java.net.URLEncoder.encode(actionMsg,"utf-8");    return "deleteSuccess";    }    actionMsg="数据异常,删除失败!";    actionMsg=java.net.URLEncoder.encode(actionMsg,"utf-8");    return "deleteError";}

步骤2:配置文件进入查询action方法

<result name="deleteSuccess" type="redirectAction">
<param name="actionName">loadAllPeriodicEvent</param>
               <param name="namespace">/periodicevent</param>
               <param name="actionMsg">${actionMsg}</param> 
</result>

步骤3:使用addActionMessage(String msg)方法

/** * 查询所有周期性事件 * @return * @throws UnsupportedEncodingException  */public String loadAllPeriodicEvent() throws UnsupportedEncodingException{if(actionMsg!=null){actionMsg=java.net.URLDecoder.decode(actionMsg,"utf-8");addActionMessage(actionMsg);}pageBean = eventManageService.loadAllPeriodicEvent(page,PAGE_SIZE);  setPageBean(pageBean);  return "loadAllPeriodicEvent";}

步骤4:返回前台

       <action name="loadAllPeriodicEvent" class="periodicEventAction" method="loadAllPeriodicEvent">
            <result name="loadAllPeriodicEvent"> 
                <param name="location">/admin/periodicevent_ck.jsp</param>
            </result>
            <interceptor-ref name="myStack"/>
       </action>

步骤5:前台取出提示

<s:if test="hasFieldErrors()">
<e:msgdialog basepath="<%=basePath%>">
<s:fielderror />
</e:msgdialog>
</s:if>
<s:if test="hasActionErrors()">
<e:msgdialog basepath="<%=basePath%>">
<s:actionerror />
</e:msgdialog>
</s:if>
<s:if test="hasActionMessages()">
<e:msgdialog basepath="<%=basePath%>">
<s:actionmessage />
</e:msgdialog>

</s:if>


显示还可以使用其他方法:比如alert();通过其他方式获取也是可以的。或者把<e:msgdialog>直接用alert代替都是可以的。这没有谁好谁坏。就看个人习惯。一起进步吧。有什么不对的地方忘指出。其他两个方法也是同理,这个如果自己需要就自己研究吧。


0 0
原创粉丝点击