我是靠谱客的博主 自由哈密瓜,最近开发中收集的这篇文章主要介绍struts中使用ajax的方法之一,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

struts中使用ajax的方法有很多,在这里我介绍的是struts文档中的方法。

https://struts.apache.org/core-developers/ajax.html 这个是struts官方文档的地址。

1.首先在使用的action类里需要写一个InputStream 对象并实现他的get方法(getInputStream 方法我就不写了),其次在你网页调用的action类里的方法里写你需要返回的字符串,比如:

用户注册的用户名判断是否被占用:

public String validateLastName() throws UnsupportedEncodingException{
if(employeeService.listNameIsValid(lastName)){
inputStream =new ByteArrayInputStream("1".getBytes("UTF-8"));
}else {
inputStream =new ByteArrayInputStream("0".getBytes("UTF-8"));
}
return "ajax-success";

}

 

解释:

/*

flag=(employeeService.listNameIsValid(lastName)

即在数据库查询的结果,如果用户名存在返回false,否则返回true

在这里getBytes("UTF-8")方法

可能会发生一个异常UnsupportedEncodingException,所担心的是系统没有UTF-8这个编码

所以在这里我们将它throws即可

*/

if(flag){                    //表示用户名没有被占用

inputStream = new ByteArrayInputStream("1".getBytes("UTF-8"));

                            //在我的jsp界面里1表示用用户名没有被占用,当然你可以设置其他的

}else{

inputStream = new ByteArrayInputStream("0".getBytes("UTF-8"));

                            //0代表用户名被占用

}

2.需要在Struts 2配置Result,在这一步result的name属性需要与上一步的方法里返回的字符串一致;

<result type="stream" name="ajax-success">
        <param name="contentType">text/html</param>
        <param name="inputName">inputStream</param>

</result>

3.编写ajax

比如有一个需要验证的s:textfield标签

<s:from ........>

    .......

    <s:textfield name="lastName" label="LastName"></s:textfield>

    .......

</s:from>

接下在我贴出我的ajax动态修改网页的代码

<script type="text/javascript">
$(function() {
$(":input[name=lastName]").change(function() {

var val = $(this).val();                    //val表示name="lastName"的标签里输入的
val =$.trim(val);                            //去除自身两端的空格
var $this=$(this);                          //是$this表示name="lastName"的标签
if(val != ""){
$this.nextAll("font").remove();

var url= "emp-validateLastName"; 

                                /*表示你要执行的方法,我使用的是通配符的方法调用action:emp-*  

                                后面的validateLastName也就是第一步写的方法*/

var args= {"lastName":val,"time":new Date()};       //获取当前时间
$.post(url,args,function(data){                                //发送post请求

 

if(data == "1"){                                               

 

                                                                                    //“1”表示名字没有被占用,和第一步inputStream返回的值对应

$this.after("<font color='green'>LastName可用</font>");
}else if(data == "0"){                                       //“0”名字被占用,道理和“1”相同
$this.after("<font color='red'>LastName不可用</font>");
}else{                                                               //服务器错误
alert("服务器错误");
}
});
}else{
alert("listName 不能为空");
this.focus();
}
});
})
</script>

 

总结:这样简单的ajax就完成了。文档中使用的json等以Ajax为中心的插件,而我使用的最普通的吧- -

 

最后

以上就是自由哈密瓜为你收集整理的struts中使用ajax的方法之一的全部内容,希望文章能够帮你解决struts中使用ajax的方法之一所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部