第一种:在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
分享到:
相关推荐
alert功能的扩展版,可以弹出一个以DIV层中元素代码为内容的提示窗口,也可以直接弹出文字信息。 提供了两个JS方法: (1)showAlert(info); 函数说明:info参数可以是字符串信息,也可以是html元素代码。 (2)...
这样,IDE可能就能正确解析和识别Struts2的配置信息,从而提供代码提示。 以上方法是解决MyEclipse中Struts2配置文件无提示问题的常见做法。确保IDE正确识别Struts2的DTD文件,不仅可以提高编码效率,还能减少因...
5. **处理前端交互**:利用jqGrid提供的API,可以轻松实现前端的交互功能,如点击行触发事件、弹出编辑/添加窗口等。 6. **前端与后端数据交互**:jqGrid通过AJAX请求向Struts2 Action发送请求,Action根据请求参数...
在实际开发中,Struts1_test这个项目可能包含了一系列的Struts1相关示例,包括动态表格的展示、后台数据处理以及弹出窗口的数据传递。这些示例可以帮助开发者理解如何在实际项目中应用上述技术。为了进一步学习和...
5. **自定义对话框**:在描述中提到的"使用自定义表单对话框编辑Grid数据",指的是使用jQuery UI或其他工具创建一个弹出窗口,展示一个表单供用户编辑选定行的数据。在提交表单时,jqGrid会通过AJAX调用Struts2 ...
Struts2框架通过资源文件(通常是`.properties`文件)来存储各种语言环境下的文本信息,以便在不同地区和语言环境中提供相应的用户界面文本。这些资源文件通常包含键值对,键用于引用,值则为具体的文本内容。当...
- **Windows**:弹出窗口,模拟桌面应用的对话框。 3. **整合EXT-desktop与Struts2**:在实际项目中,EXTJS 通过 AJAX 与 Struts2 进行通信,发送请求到服务器,接收响应数据并更新视图。登录流程可能如下: - ...
在Flexigrid实例中,服务器端的Struts2将处理后的数据转换为JSON格式,这些数据包括表格所需的行数据、列信息等,然后通过Ajax请求发送给前端。 jQuery是一个广泛使用的JavaScript库,简化了HTML文档遍历、事件处理...
DataGrid的可编辑功能通常通过行内编辑或弹出窗口编辑实现。在Struts2框架下,我们可以在DataGrid的行上添加编辑按钮,当用户点击编辑时,触发AJAX请求,将当前行的数据发送到服务器。服务器端的Struts2动作类接收到...
4. **实时更新头像**: 描述中提到了使用`showModalDialog`进行窗口弹出上传,这是一种JavaScript函数,用于打开一个模态对话框。当用户上传成功后,对话框关闭,并通过Ajax或者页面刷新来实现头像的实时更新。如果...
在Palette面板上,选择“Create JSP File”,在弹出的窗口中,输入文件名为`userLoginSuccess.jsp`,Template选择“2] Standard JSP using Struts 1.1”,点击“Finish”。这将自动生成JSP文件,并在`struts-config...
点击“扩展”菜单,选择“管理扩展”,然后在弹出的窗口中浏览并安装插件。确保你选择的是与你的Dreamweaver版本兼容的插件。 2. **配置插件**:安装完成后,可能需要重启Dreamweaver以使新插件生效。在插件设置中...
1. 在菜单栏中点击“工具”->“选项”,然后在弹出的窗口中选择“ClassPath”面板。 2. 点击“Add Folder”按钮,选择项目中包含JavaBean类的`Web-Inf/classes`目录。 3. 完成以上步骤后,点击“保存”以应用更改。 ...
在弹出的窗口中,根据提示设置并点击“Finish”。 3. 新建FormBean FormBean是STRUTS中用于接收用户输入的数据对象。在“struts-config.xml”中添加新的FormBean定义。使用IDE的“New → Form, Action and JSP”...
弹出层通常是指在用户点击上传按钮后,出现的一个浮动窗口,显示上传进度、错误信息或者上传完成后的提示。这种设计可以避免用户离开当前页面,提高用户体验。 在实际应用中,使用SWFUpload时,开发者需要注意以下...
3. 编辑学生信息:用户选择JTable中的行,弹出一个对话框显示详细信息并允许编辑。 4. 新增学生:通过对话框输入新学生信息并添加到表格中。 5. 删除学生:用户确认后,从表格中移除选定的学生记录。 6. 排序:根据...
- 显示Struts返回的JSON结果,更新表格或者给出提示信息。 这种组合方式既能发挥Struts在业务处理上的优势,又能利用DWZ提升用户体验。开发者只需要关注业务逻辑和数据处理,无需过多关心前端细节,大大提高了开发...
而其对话框组件则可以用于处理弹出式窗口,如用户确认、信息提示等场景。 Struts2作为后台的主要框架,负责处理HTTP请求,执行业务逻辑并返回响应。它采用了MVC(Model-View-Controller)设计模式,提供了灵活的...
首先需要找到插件的更新站点URL,然后在Eclipse中选择"帮助"(Help)> "安装新软件",在弹出的窗口中输入URL,点击"添加",之后按照步骤安装。例如,如果你需要安装一个与Struts相关的插件,可能会找到相应的Update ...