在struts2.0的action中如何弹出信息提示
第一种:在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>
|
分享到:
相关推荐
另外,按照惯例,在Struts1.x中只有“execute”方法能调用Action, 但在Struts2中并非必要,任何声明为public String methodName() 方法,都能通过配置来调用Action。 最后,和Struts1.x最大的革命性的不同是,...
5. <s:actionmessage/>-----如果action的message有值那么显示出来 6. <s:append></s:append>-----添加一个值到list,类似于list.add(); 7. <s:autocompleter></s:autocompleter>-----自动完成标签的内容,这个是...
使用国际化资源文件来显示错误信息可以在上面的<message>标签中使用这样的形式:<message key=”name” />的形式这里的key所表示的就是国
* 在struts-config.xml文件中加入:<message-resources parameter="MessageResources" /> 2、提供不同版本的国际化资源文件,中文需要采用native2ascii转换成unicode 3、在jsp中采用<bean:message>标签来读取...
项目建立完成之后,在Myeclipse视图中,Package Explorer中显示如下: test:为项目名称。 Src:为源文件所放路径。 WebRoot:为Web root folder 2、加载Struts 在所建立项目test上右键后,提示如下...
2. 深入 STRUTS架构..................................................................................37 2.1. 随便谈谈......................................................................................
2. 深入STRUTS 架构..................................................................................37 2.1. 随便谈谈.......................................................................................
本书系统全面地介绍了Java中的各项主流技术,以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、...
Struts是一个基于Sun J2EE平台的MVC框架,Struts把Servlet、JSP、自定义标签和信息资源(Message Resources)整合到统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套 MVC模式,极大的节省了时间[4]。...
Struts is a set of cooperating classes, servlets, and JSP tags that make up a reusable MVC 2 design. This definition implies that Struts is a framework, rather than a library, but Struts also contains...
2. 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。 3、HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交? 4、请写...
2. 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。 83 3、HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交? 84 4、...
2. 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。 83 3、HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交? 84 4、...
2. 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。 83 3、HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交? 84 4、...
2. 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。 83 3、HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交? 84 4、...
2. 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。 83 3、HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交? 84 4、...
2. 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。 83 3、HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交? 84 4...
2. 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。 90 3、HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交? 91 4、...
16.2.7、国际化与<bean:message>标签 16.3、Logic标签 16.3.1、标签和标签 16.3.2、标签和标签 16.3.3、关系运算标签 16.3.4、标签 16.3.5、重定向标签: 16.4、Html标签 16.4.1、<html:form>...