`
seethemoon
  • 浏览: 48356 次
  • 性别: Icon_minigender_1
  • 来自: 钟祥
社区版块
存档分类
最新评论

Struts2弹出信息提示窗口

阅读更多

第一种:在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='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>   

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wpjava/archive/2010/04/28/5539308.aspx

分享到:
评论

相关推荐

    JS控制弹出DIV层窗口控件(divAlert)

    alert功能的扩展版,可以弹出一个以DIV层中元素代码为内容的提示窗口,也可以直接弹出文字信息。 提供了两个JS方法: (1)showAlert(info); 函数说明:info参数可以是字符串信息,也可以是html元素代码。 (2)...

    Struts2没有提示解决方案

    这样,IDE可能就能正确解析和识别Struts2的配置信息,从而提供代码提示。 以上方法是解决MyEclipse中Struts2配置文件无提示问题的常见做法。确保IDE正确识别Struts2的DTD文件,不仅可以提高编码效率,还能减少因...

    jqgrid+struts2

    5. **处理前端交互**:利用jqGrid提供的API,可以轻松实现前端的交互功能,如点击行触发事件、弹出编辑/添加窗口等。 6. **前端与后端数据交互**:jqGrid通过AJAX请求向Struts2 Action发送请求,Action根据请求参数...

    动态增删table以及后台传值和弹出窗口父子窗口传值

    在实际开发中,Struts1_test这个项目可能包含了一系列的Struts1相关示例,包括动态表格的展示、后台数据处理以及弹出窗口的数据传递。这些示例可以帮助开发者理解如何在实际项目中应用上述技术。为了进一步学习和...

    jqGrid与Struts2的结合应用

    5. **自定义对话框**:在描述中提到的"使用自定义表单对话框编辑Grid数据",指的是使用jQuery UI或其他工具创建一个弹出窗口,展示一个表单供用户编辑选定行的数据。在提交表单时,jqGrid会通过AJAX调用Struts2 ...

    Struts2资源文件在jsp页面中显示乱码解决

    Struts2框架通过资源文件(通常是`.properties`文件)来存储各种语言环境下的文本信息,以便在不同地区和语言环境中提供相应的用户界面文本。这些资源文件通常包含键值对,键用于引用,值则为具体的文本内容。当...

    EXT-desktop+struts2

    - **Windows**:弹出窗口,模拟桌面应用的对话框。 3. **整合EXT-desktop与Struts2**:在实际项目中,EXTJS 通过 AJAX 与 Struts2 进行通信,发送请求到服务器,接收响应数据并更新视图。登录流程可能如下: - ...

    flexigrid+struts2+json+jquery实例

    在Flexigrid实例中,服务器端的Struts2将处理后的数据转换为JSON格式,这些数据包括表格所需的行数据、列信息等,然后通过Ajax请求发送给前端。 jQuery是一个广泛使用的JavaScript库,简化了HTML文档遍历、事件处理...

    struts2+easyui 基于maven实现单元格可编辑表格datagrid

    DataGrid的可编辑功能通常通过行内编辑或弹出窗口编辑实现。在Struts2框架下,我们可以在DataGrid的行上添加编辑按钮,当用户点击编辑时,触发AJAX请求,将当前行的数据发送到服务器。服务器端的Struts2动作类接收到...

    基于struts上传头像功能

    4. **实时更新头像**: 描述中提到了使用`showModalDialog`进行窗口弹出上传,这是一种JavaScript函数,用于打开一个模态对话框。当用户上传成功后,对话框关闭,并通过Ajax或者页面刷新来实现头像的实时更新。如果...

    利用Myeclipse开发struts应用程序

    在Palette面板上,选择“Create JSP File”,在弹出的窗口中,输入文件名为`userLoginSuccess.jsp`,Template选择“2] Standard JSP using Struts 1.1”,点击“Finish”。这将自动生成JSP文件,并在`struts-config...

    Dreamwear显示struts标签插件

    点击“扩展”菜单,选择“管理扩展”,然后在弹出的窗口中浏览并安装插件。确保你选择的是与你的Dreamweaver版本兼容的插件。 2. **配置插件**:安装完成后,可能需要重启Dreamweaver以使新插件生效。在插件设置中...

    最新JasperReport3.7 iReport的java Web报表整合Struts2完整教程

    1. 在菜单栏中点击“工具”-&gt;“选项”,然后在弹出的窗口中选择“ClassPath”面板。 2. 点击“Add Folder”按钮,选择项目中包含JavaBean类的`Web-Inf/classes`目录。 3. 完成以上步骤后,点击“保存”以应用更改。 ...

    开发STRUTS应用的步骤及中文乱码处理汇编.pdf

    在弹出的窗口中,根据提示设置并点击“Finish”。 3. 新建FormBean FormBean是STRUTS中用于接收用户输入的数据对象。在“struts-config.xml”中添加新的FormBean定义。使用IDE的“New → Form, Action and JSP”...

    swf上传组件

    弹出层通常是指在用户点击上传按钮后,出现的一个浮动窗口,显示上传进度、错误信息或者上传完成后的提示。这种设计可以避免用户离开当前页面,提高用户体验。 在实际应用中,使用SWFUpload时,开发者需要注意以下...

    Java Swing开发的学生信息

    3. 编辑学生信息:用户选择JTable中的行,弹出一个对话框显示详细信息并允许编辑。 4. 新增学生:通过对话框输入新学生信息并添加到表格中。 5. 删除学生:用户确认后,从表格中移除选定的学生记录。 6. 排序:根据...

    dwzStruts 框架

    - 显示Struts返回的JSON结果,更新表格或者给出提示信息。 这种组合方式既能发挥Struts在业务处理上的优势,又能利用DWZ提升用户体验。开发者只需要关注业务逻辑和数据处理,无需过多关心前端细节,大大提高了开发...

    SSHE项目代码

    而其对话框组件则可以用于处理弹出式窗口,如用户确认、信息提示等场景。 Struts2作为后台的主要框架,负责处理HTTP请求,执行业务逻辑并返回响应。它采用了MVC(Model-View-Controller)设计模式,提供了灵活的...

    eclipse 插件 视频

    首先需要找到插件的更新站点URL,然后在Eclipse中选择"帮助"(Help)&gt; "安装新软件",在弹出的窗口中输入URL,点击"添加",之后按照步骤安装。例如,如果你需要安装一个与Struts相关的插件,可能会找到相应的Update ...

Global site tag (gtag.js) - Google Analytics