您的位置:首页 > 编程语言 > Java开发

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

2012-11-29 13:12 393 查看

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更慢……推荐第一种,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: