JavaScript实现Struts2+Ajax返回文本字符串

小白我最近开始研究Ajax,从头开始,用到Struts2+Ajax返回文本字符串的时候发现网上用原生JavaScript实现的并不是很多,多半是Struts2+Ajax+JQuery+JSON等实现的。所以小白写了一篇小文,献丑了。
如果有什么不妥的地方,请各位大神批评指正,谢谢。
本文例子主要是实现用户输入用户名之后,当输入框失去焦点的时候检测用户名是否已经存在。

用户页面, register.html
Html代码 复制代码 收藏代码
  1. <li>
  2. <div class="inputInfo">
  3. <span>帐号</span>
  4. <input type="text" value="" class="inputText" id="name"/>
  5. </div>
  6. </li>
  7. <li>
  8. <div class="inputInfo">
  9. <span>密码</span>
  10. <input type="password" class="inputText" id="password"/>
  11. </div>
  12. </li>
  13. <!-- 显示返回文本字符串 -->
  14. <div id="showResponseText"></div>
<li>
	<div class="inputInfo">
		<span>帐号</span>
                <input type="text" value="" class="inputText" id="name"/>
        </div>
</li>
<li>
	<div class="inputInfo">
		<span>密码</span>
                <input type="password" class="inputText" id="password"/>
	</div>
</li>

<!-- 显示返回文本字符串 -->
<div id="showResponseText"></div>
工具包utils.js用来获取请求request。 utils.js
Js代码 复制代码 收藏代码
  1. // JavaScript Document
  2. utils={
  3. createRequest:function(){
  4. var request ;
  5. try{
  6. request = new XMLHttpRequest();
  7. }catch(tryMS){
  8. try{
  9. request = new ActiveXObject("Msxml2.XMLHTTP");
  10. }catch(otherMS){
  11. try{
  12. request = new ActiveXObject("Microsoft.XMLHTTP");
  13. }catch(failed){
  14. request = null;
  15. }
  16. }
  17. }
  18. return request;
  19. }
  20. };
脚本操作, register.js
Js代码 复制代码 收藏代码
  1. // JavaScript Document
  2. register={
  3. init:function(){
  4. document.getElementById('name').onblur = register.checkUserName;
  5. },
  6. checkUserName:function(){
  7. request = utils.createRequest();
  8. if(request == null){
  9. alert("create request failed");
  10. }
  11. else{
  12. var nameValue = document.getElementById('name').value;
  13. var url = "ajax_register!checkUserName?userName="+nameValue;
  14. request.onreadystatechange = register.showUserNameStatus;
  15. request.open("post",url,true);
  16. request.send(null);
  17. }
  18. },
  19. showUserNameStatus:function(){
  20. if(request.readyState == 4){
  21. if(request.status ==200){
  22. document.getElementById("showResponseText").innerHTML=request.responseText;
  23. }
  24. }
  25. }
  26. };
  27. window.onload = register.init;
Struts2的配置文件编写, Struts.xml
Xml代码 复制代码 收藏代码
  1. <action name="ajax_register" class="customer.action.Ajax_RegisterAction">
  2. <result type="stream">
  3. <param name="contentType">text/plain</param>
  4. <param name="inputName">inputStream</param>
  5. </result>
  6. </action>

action的编写, Ajax_RegisterAction.java
Java代码 复制代码 收藏代码
  1. import java.io.InputStream;
  2. import java.io.StringBufferInputStream;
  3. import com.opensymphony.xwork2.ActionSupport;
  4. import customer.service.Register;
  5. import customer.service.RegisterImpl;
  6. public class Ajax_RegisterAction extends ActionSupport {
  7. /**
  8. *
  9. */
  10. private static final long serialVersionUID = 1L;
  11. private InputStream inputStream;
  12. public InputStream getInputStream() {
  13. return inputStream;
  14. }
  15. public void setInputStream(InputStream inputStream) {
  16. this.inputStream = inputStream;
  17. }
  18. // service类
  19. private Register register = new RegisterImpl();
  20. private String userName;
  21. public String getUserName() {
  22. return userName;
  23. }
  24. // 检查userName是否重复
  25. public String checkUserName(){
  26. String text ="";
  27. if(!register.checkNameExist(userName)){
  28. text = "yes";
  29. }else{
  30. text = "no";
  31. }
  32. getResponseText(text);
  33. return SUCCESS;
  34. }
  35. // 获取返回文本
  36. public void getResponseText(String text){
  37. inputStream = new StringBufferInputStream(text);
  38. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值