概述
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的方法之一所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复