我的程序采用struts架构:
1. 实现用户支付的功能,能否使用<html:errror>来显示查询数据库后得到的 用户金额不足 ?在Action里查询该用户,如果发觉用户余额不足的时候,我想回到输入页面,并使用<html:errror>来提示 余额不足。 如果能实现,麻烦大家给我说说在Action里应该怎么创建这ActionError?其它地方还需要做些什么?
2.我想在Action里实现类似于 response.write("<script>alert('AAAAAAAA')</script>") 的功能,即执行到这的时候弹出一个警告框,不知应该怎样来实现?
谢谢各位大虾们。

解决方案 »

  1.   

    <html:errror>是发生异常的返回错误信息标签啊
    你先找本struts的书 系统学学
    不然会浪费更多时间
      

  2.   

    Action 中有有错误时
    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 对应的字符串。
      

  3.   

    1,楼上的很好
      不重复.2,[color=#FF0000].我想在Action里实现类似于 response.write(" <script>alert('AAAAAAAA') </script>") 的功能,即执行到这的时候弹出一个警告框,不知应该怎样来实现? [/color]直接在action 中写 
    response.write(" <script>alert('AAAAAAAA'); window.location='你要转向的页面';</script>");
      

  4.   

    5楼是可以的在ACTION 里面谈出一个警告是不行的6楼是错的;
      

  5.   

    消息显示public ActionForward execute(HttpServletRequest request .....){
        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从作用域中将消息显示出来。即可。这样的回答,应该能解决楼主的问题了吧!!结贴的话要记得给我分啊!!