我的程序采用struts架构:
1. 实现用户支付的功能,能否使用<html:errror>来显示查询数据库后得到的 用户金额不足 ?在Action里查询该用户,如果发觉用户余额不足的时候,我想回到输入页面,并使用<html:errror>来提示 余额不足。 如果能实现,麻烦大家给我说说在Action里应该怎么创建这ActionError?其它地方还需要做些什么?
2.我想在Action里实现类似于 response.write("<script>alert('AAAAAAAA')</script>") 的功能,即执行到这的时候弹出一个警告框,不知应该怎样来实现?
谢谢各位大虾们。
1. 实现用户支付的功能,能否使用<html:errror>来显示查询数据库后得到的 用户金额不足 ?在Action里查询该用户,如果发觉用户余额不足的时候,我想回到输入页面,并使用<html:errror>来提示 余额不足。 如果能实现,麻烦大家给我说说在Action里应该怎么创建这ActionError?其它地方还需要做些什么?
2.我想在Action里实现类似于 response.write("<script>alert('AAAAAAAA')</script>") 的功能,即执行到这的时候弹出一个警告框,不知应该怎样来实现?
谢谢各位大虾们。
你先找本struts的书 系统学学
不然会浪费更多时间
ActionMessages errors = new ActionMessages();
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.not.enough.money"));//在你的资源文件里要有这个 error.not.enough.money 键saveErrors(request, errors);//转向到 input 页面
return mapping.getInputForward();然后在你的 jsp 页面中就可以用 <html:error/> 显示错误了,也就是 error.not.enough.money 对应的字符串。
不重复.2,[color=#FF0000].我想在Action里实现类似于 response.write(" <script>alert('AAAAAAAA') </script>") 的功能,即执行到这的时候弹出一个警告框,不知应该怎样来实现? [/color]直接在action 中写
response.write(" <script>alert('AAAAAAAA'); window.location='你要转向的页面';</script>");
String message = "余额不足";
request.setAttribute("message",message);
return mapping.findForward("login");
}JSP页面
<logic:present name="message" scope="request">
<bean:write="message" scope="request">
</logic:present>上面这种方式是最简单的。如果想使用<html:errors>的方式来提示消息的话,有点麻烦。Action中
ActionMessages messages = new ActionMessages();
ActionMessage message = new ActionMessage("余额不足", false);
messages.add(ActionMessages.GLOBAL_MESSAGE, message);
this.saveMessages(request, messages);
return mapping.findForward("login")JSP页面:<logic:messagesPresent message="true">
<html:messages id="message" message="true">
<bean:write name="message" />
</html:messages>
</logic:messagesPresent>这样也可以显示消息。楼主对Sturts学习的不够,<html:errors>是用来显示ActionForm中的Validate中的验证消息的。而<html:messages>才是用来显示Action中的消息的。2:在Struts中弹出对话框:这是可以的,Struts本身就是对Serlvet的一个封装
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest request,
HttpServletResponse response) { PrintWriter out = response.getWriter();
out.println("<script>alert('xxxx');window.location.href='你想要的页面'</script>");
return null;//不可省略去这一句话。
}不过这样,地址就变成重定向了,不是转发,也就不能传递对象数据了。建议楼主在Action中将消息存放到request作用域中,然后页面上用JavaScript从作用域中将消息显示出来。即可。这样的回答,应该能解决楼主的问题了吧!!结贴的话要记得给我分啊!!