`
codermouse
  • 浏览: 49891 次
  • 性别: Icon_minigender_1
  • 来自: 西柏利亚
社区版块
存档分类
最新评论
阅读更多
第一种:在struts2 action中弹出Js脚本提示信息

让action实现ServletResponseAware接口,同时实现其setServletResponse() 方法
import org.apache.struts2.interceptor.ServletResponseAware;
public class StudentAction extends ActionSupport implements ServletResponseAware{
     private javax.servlet.http.HttpServletResponse response;

     public String addStudent() throws IOException{
             response.setContentType("text/html;charset=UTF-8");
              response.setCharacterEncoding("UTF-8");//防止弹出的信息出现乱码
             PrintWriter out = response.getWriter();
           studentDAO=new StudentDAO();
          flag=studentDAO.addStudent(stu);
        if(flag){       
                 out.print("<script>alert('添加成功!')</script>");
                 out.print("<script>window.location.href='http://ykdreaming.blog.163.com/blog/stuaction.action'</script>");
                 out.flush();
                 out.close();
                 return null;
    }else{
       return "error";
    }
    }

}

// 获得HttpServletResponse对象
public void setServletResponse(HttpServletResponse response) {
   this.response = response;
}

------------------------------------------------------------------------------------------------------------------------------
第二种:把错误信息放入request里面,然后在页面上判断此信息是否存在,存在的话就弹出

最近在用Struts2+Spring+Hibernate主流框架开发项目,其中有部分界面表单提交结果的处理问题,之前一直都是通过 struts.xml配置指定的返回页面,在页面上显示出actionMessage,这样感觉不是很好,就想不要页面跳转,点击按钮处理后直接由js来 alert()出来,以前没有专门研究过,知道ajax可以实现,但那样每个提交时都要用ajax,太麻烦了,现在把我的实现方式记录下来:

首先,还是传统的Action,一般情况下,我们要返回信息可能会这样写:this.addActionMessage("提交成功!");这里做一点变化,用request.setAttribute("tipMessage", "提交成功!"); (tipMessage是自定义的)。

OK,然后在当前提交的页面里加上如下一段js:
<script type="text/javascript">
var msg="${requestScope.tipMessage}";
if(msg!=""){
alert(msg);
}
</script>

当然了,最后要记住struts.xml里同样要配置<result />的相关信息。
------------------------------------------------------------------------------------------------------------------------
第三种:
以前我们在action中写类似这样的代码
this.addActionMessage("提交成功!");

页面上:
<s:if test="hasFieldErrors()">  
<s:iterator value="fieldErrors">  
<s:iterator value="value">  
    <script language="JavaScript">  
     alert('<s:property/>');  
    </script>     
</s:iterator>    
</s:iterator>   
</s:if>

这样当有field错误,就会弹出错误提示!当然不alert的话 也可以在外面之间套上div,控制输出格式
但问题来了,如果有多个field错误 就会不断地弹出消息窗口
如何把所有的错误消息全部显示在一个对话框中,每条错误消息占一行显示呢?

经过很长时间的摸索 问题终于给解决了 现在把它分享出来

在需要显示消息的页面加入include来引用message.jsp (或者把message.jsp的内容直接放在要显示消息的页面 )
<s:include value="message.jsp"></s:include>

最好把它放在页面最后 等页面全部加载后 再显示消息,要不然 加在前面的话就可能看到页面空白 消息提示显示完成后才显示页面.

message.jsp代码如下
<%@ page language="java" contentType="text/html; charset=GB18030"     pageEncoding="GB18030"%>  
<%@ taglib prefix="s" uri="/struts-tags"%>  
<html>  
   <body>  
         //fielderror  
    <s:if test="hasFieldErrors()">  
        <s:iterator value="fieldErrors">  
            <s:iterator value="value" status="statu">  
                //field的错误消息是List 因此还需要迭代一次       
                <s:set name="index" value="#statu.index"/>  
                <s:set name="msg" value="#msg==null?'':#msg+  
                value.get(#request.index).toString()+'\\\n'"/>//关键代码  
             </s:iterator>  
        </s:iterator>  
    </s:if>  

         //actionerror  
    <s:if test="hasActionErrors()">  
        <s:iterator value="actionErrors">  
               <script language="JavaScript">  
                alert("<s:property escape="false"/>")  
               </script>  
            </s:iterator>  
    </s:if>  

         //actionmessage  
    <s:if test="hasActionMessages()">  
        <s:iterator value="actionMessages">  
            <script language="JavaScript">  
                alert("<s:property escape="false"/>")  
            </script>  
        </s:iterator>  
     </s:if>  

         //打印转换好格式的fielderror信息  
    <s:if test="#msg.length()>0">  
        <script language="JavaScript">  
            alert("<s:property escape='false' value='#msg'/>")  
        </script>  
    </s:if>  
    </body>  
</html>  


另外还有一种方法直接在script代码中嵌入struts2标签:

view plaincopy to clipboardprint?
struts2.0弹出验证
<!--用javascript验证 -->   
<s:if test="hasFieldErrors()">   
   <script language="JavaScript">  
     var msg = '';    
     <s:iterator value="fieldErrors">     
       <s:iterator value="value">     
            msg=msg+'<s:property/>'+'\n';   
       </s:iterator>       
     </s:iterator>   
     alert(msg);   
   </script>        
</s:if>

分享到:
评论

相关推荐

    struts1和struts2的区别

    struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别...

    Struts2视频教程

    Struts2是一套非常优秀的Java WEB应用框架,实现优雅、功能强大、使用简洁。目前已有大量的企业项目采用Struts2来作为Web框架进行开发,掌握Struts2是每个进行Web开发的Java程序员的一项必备技能。 本视频对Struts2...

    struts2-core.jar

    struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...

    Struts2_s2-016&017&ognl2.6.11_patch漏洞补丁

    -- 为修复struts2 s2-016、s2-017漏洞,重写DefaultActionMapper --&gt; &lt;bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class=...

    struts2 chm 帮助文档

    struts2 chm 程序包 org.apache.struts2 接口概要 接口 说明 StrutsStatics Constants used by Struts. 类概要 类 说明 RequestUtils Request handling utility class. ServletActionContext Web-specific ...

    Struts2开发常用jar包

    包含struts2-core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-...

    最新版本的Struts2+Spring4+Hibernate4框架整合

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...

    struts2 总结工程大全

    struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...

    struts2环境搭建+struts2 新闻发布系统+struts2 留言板

    struts2环境搭建+struts2 新闻发布系统+struts2 留言板 struts2环境搭建:基础框架搭建,简单易上手,适合新手,比你看书强多了,实践源于理论而高于理论,贵在实践 朋友。 struts2 新闻发布系统:struts2+jsp 功能不...

    Struts2漏洞检查工具2019版 V2.3.exe

    Struts2漏洞检查工具2019版 警告: 本工具为漏洞自查工具,请勿非法攻击他人网站! ==漏洞编号==============影响版本=========================官方公告==========================================影响范围====...

    struts2技术内幕+struts2权威指南

    《Struts2技术内幕:深入解析Struts2架构设计与实现原理》以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2...

    Struts2漏洞检查工具Struts2.2019.V2.3

    Struts2漏洞检查工具Struts2.2019.V2.3

    论坛系统项目(Struts 2+Hibernate+Spring实现)

    论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts...

    struts2 技术内幕——深入解析struts2架构设计

    《Struts2技术内幕:深入解析Struts2架构设计与实现原理》由国内极为资深的Struts2技术专家(网名:downpour)亲自执笔,iteye兼CSDN产品总监范凯(网名:robbin)以及51CTO等技术社区鼎力推荐。  本书以Struts2的...

    struts2实例 学生信息管理系统

    struts2实现的学生信息管理系统 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...

    struts2 资料struts2 资料struts2 资料struts2 资料

    struts2 资料struts2 资料struts2 资料struts2 资料

    Struts2实战.pdf

    资深开发人员深入剖析Struts2核心概念和组件 学习Struts不可不读 作者简介 作者:(美国)Donald Brown (美国)Chad Michael Davis (美国)Scott Stanlick 译者:马召 等 Donald Brown,Atlassian软件系统公司托管...

    Struts 2 远程代码执行漏洞(s2-045\s2-046)修复所用到的包

    struts2-convention-plugin-2.3.32.jar struts2-core-2.3.32.jar struts2-spring-plugin-2.3.32.jar xwork-core-2.3.32.jar --来源 ...

    struts2(1-7)源码 struts2学习入门 源码学习

    struts 初步认识Struts2并部署验证 struts2 将要进行自定义类型转换的点数据从1个增加到3个 struts3 进行全局的类型转换 struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter ...

    Struts2工作流程图

    虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度...

Global site tag (gtag.js) - Google Analytics