从来没有发过文章,总是借助各位大神的文章解决问题,第一次写文章,有什么不好的地方请别介意。这个问题整了几乎一天,所以发上来希望能给其他人有所帮助。
实现的功能:
<action name="user_name_check" class="userManageAction" method="check_name_exist">
<!-- 返回类型为json 在json-default中定义 -->
<result type="json">
<!-- root的值对应要返回的值的属性 -->
<!-- 这里的result值即是 对应action中的 result -->
<param name="root">result</param>
</result>
</action>
</package>
这个地方需要注意的是必须要有这个参数<param name="root">result</param>,否则前台获取不到result的值,本实验中result是字符创,也可以是一些其他object。包集成的必须是 extends="json-default",否则后面就没有type类型为json的返回。本人试了加一个namespace,发现也不能实现动态功能。其他的都是一些基本的配置,这就不多介绍了。
最后说一下关于struts和sping的配置就不发上来了,网上有的是。还有必须添加必须的json包。
有什么问题的话站内联系。
实现的功能:
用户管理功能的添加用户自动采用ajax动态检查用户名是否存在,存在就弹出警告,不存在就插入数据库,不多说了,直接上代码。
一、前端Js代码(采用jquery实现)
$(document).ready(function(){
二 前端HTML代码
<div id="container">
<form action="user_manage/user_add" method="post" id="myForm">
新增用户名:<input type="text" name="user.user_name" id="user_name"/><br/>
<input type="button" value="添加" id="user_add"/>
</form>
</div>
这个地方需要特别注意的是 <input type="button" value="添加" id="user_add"/>这句调用ajax的语句,里面的type类型是button,而不是submit,如果是submit则默认提交表单,不会有ajax的动态效果。所以当用户名不存在时,需要手动提交表单,见上面的JS语句$("#myForm").submit();
三、后台实现类代码
private String user_name;//动态ajax时需要检查的用户名
private String result;//返回用户名是否存在的信息
注意这两个属性必须要有get、set方法,地方有限,就不发出来了。
public String check_name_exist(){
result=userManageService.check_name_exist(user_name);
System.out.println(result);
return "success";
}
$("#user_add").click(function(){
var params = {
user_name:$('#user_name').val()
};//需要传递的参数
$.post("user_name_check", params,callbackFun,'json');
});
//回调函数
function callbackFun(data){
if (data=="exist") {
alert("name is exist");
}else if(data=="noexist"){
$("#myForm").submit();
}
}
});
二 前端HTML代码
<div id="container">
<form action="user_manage/user_add" method="post" id="myForm">
新增用户名:<input type="text" name="user.user_name" id="user_name"/><br/>
<input type="button" value="添加" id="user_add"/>
</form>
</div>
这个地方需要特别注意的是 <input type="button" value="添加" id="user_add"/>这句调用ajax的语句,里面的type类型是button,而不是submit,如果是submit则默认提交表单,不会有ajax的动态效果。所以当用户名不存在时,需要手动提交表单,见上面的JS语句$("#myForm").submit();
三、后台实现类代码
private String user_name;//动态ajax时需要检查的用户名
private String result;//返回用户名是否存在的信息
注意这两个属性必须要有get、set方法,地方有限,就不发出来了。
public String check_name_exist(){
result=userManageService.check_name_exist(user_name);
System.out.println(result);
return "success";
}
userManageService.check_name_exist是业务函数,用户名存在返回exist,不存在返回noexist。没有什么好说的。
四、后台Struts的配置
<package name="ajax" extends="json-default"><action name="user_name_check" class="userManageAction" method="check_name_exist">
<!-- 返回类型为json 在json-default中定义 -->
<result type="json">
<!-- root的值对应要返回的值的属性 -->
<!-- 这里的result值即是 对应action中的 result -->
<param name="root">result</param>
</result>
</action>
</package>
这个地方需要注意的是必须要有这个参数<param name="root">result</param>,否则前台获取不到result的值,本实验中result是字符创,也可以是一些其他object。包集成的必须是 extends="json-default",否则后面就没有type类型为json的返回。本人试了加一个namespace,发现也不能实现动态功能。其他的都是一些基本的配置,这就不多介绍了。
最后说一下关于struts和sping的配置就不发上来了,网上有的是。还有必须添加必须的json包。
有什么问题的话站内联系。