struts2如何实现弹出action返回的错误信息

struts2如何实现弹出action返回的错误信息

方法1:

在跳转的页面写入如下代码:

<script type="text/javascript">
 //错误提示信息
 var msg=""+'${request.tipMessage}';
 if(msg!=""){
    alert(msg);
 } 
    //-->
</script>

在对应的action中写入如下代码:

   message = "课程已结束无法报名!";
   request.setAttribute("tipMessage", message);

这样就完成了。

 

方法2:

直接在action中写入如下代码:

PrintWriter outjs = response.getWriter();
outjs.print("<script>alert('成功');window.location.reload();</script>");
return null;

首先,response.getWriter()需要try,catch;而且有编码问题。

window.location.reload();如果发现页面一直刷新不跳转;请把这句话去掉。

本人一直就讨厌编码问题;虽然都可以解决。推荐第一种方法。

 

方法3:

是用jQuery;进行ajax验证;

(1)页面写入如下代码:

        function checkName(name) {
            var userMessage = document.getElementById("userMessage");
            if (name == "") {
                userMessage.innerHTML = "<font color=red>请输入用户名</font>";
            } else {
             //检查用户名是否存在
             jQuery.get('findPasswordAction_validateUsername?username=' + name, null, callback);
            }
            username = name;
            nameChecked = true;
        }
       
        function callback(data) {
            var userMessage = document.getElementById("userMessage");
            if(data == 1){
             userMessage.innerHTML = "";
             Bname = true;
             if(type == "cryptoguard"){
              validateCryptoguard();
             }
            }else if(data == 0){
             userMessage.innerHTML = "<font color=red>该用户名不存在!</font>";
             Bname = false;
            }
        }
(2)action写入如下代码:

 /**
  * ajax校验用户名是否存在
  * 存在该用户,向页面返回1
  * 不存在该用户,想页面返回0
  */
 public void validateUsername(){
     String username = request.getParameter("username");
     Boolean flag = false;
        try {
            flag = userFacade.exsitUser(username);
        } catch (BaseAppException e) {
            Response response = HandleExceptionUtil.handleException(e, e
                    .getMessage(), null, null);
        } catch (BaseAppRuntimeException e) {
            Response response = HandleExceptionUtil.handleException(e, e
                    .getMessage(), null, null);
        } finally {
        }
        PrintWriter out = null;
        try {
            out = response.getWriter();
        } catch (IOException e) {
            e.printStackTrace();
        }
        int i = 0;
        if(flag){
            i=1;
        }
        out.println(i);
        out.flush();
        out.close();
 }

解释一下:

首先;页面填写用户名;如果不填写;直接提示;如果填写;会执行

 jQuery.get('findPasswordAction_validateUsername?username=' + name, null, callback);

第一个参数是请求的url;第二个可选。规定连同请求发送到服务器的数据;第三个可选,是回调方法;这里就是下面的callback;

action中方法返回值flag就是页面callback方法中的data参数;然后执行alert();个人觉得ajax更慢……推荐第一种,
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值