strtuts+ajax 用户名无刷新验证简单实例

AjaxAction:

package ajax.demo;



import java.util.ArrayList;
import java.util.List;

import ajax.model.User;

import com.opensymphony.xwork2.ActionSupport;

public class AjaxAction extends ActionSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	User user1 =  new User();
	User user2 = new User();
	User user = new User();
	
	public User getUser() {
		return user;
	}


	public void setUser(User user) {
		this.user = user;
	}



	private List<User> users = new ArrayList<User>();
	
	public List<User> getUsers() {
		return users;
	}


	public void setUsers(List<User> users) {
		this.users = users;
	}



	private String mydata;
	

	public String getMydata() {
		return mydata;
	}


	public void setMydata(String mydata) {
		this.mydata = mydata;
	}


	public String loadInfo(){
		mydata = "這是我的数据";
		user1.setName("潘俊");
		user1.setSex("男");
		user2.setName("panjone");
		user2.setSex("male");
		users.add(user1);
		users.add(user2);
		return SUCCESS;
	}
	
	public String checkUser(){
		if(user.getName().equals("panjone")){
			mydata = "该用户名已存在!";
		}else{
			mydata = "恭喜你,该用户名可以注册!";
		}
		return SUCCESS;
	}

}


 

struts.xml:

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="" extends="struts-default">

        <default-action-ref name="index" />

        <global-results>
            <result name="error">/error.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="error"/>
        </global-exception-mappings>

        
    </package>
    
    <package name="ajax" extends="json-default">
        <action name="ajaxAction" class="ajax.demo.AjaxAction" method="loadInfo">
            <result name="success" type="json"></result>
        </action>
        <action name="checkAction" class="ajax.demo.AjaxAction" method="checkUser">
            <result name="success" type="json"></result>
            <param name="excludeProperties">users,user</param>
        </action>              
    </package>
    


    <!-- Add packages here -->

</struts>


jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
	response.setCharacterEncoding("UTF-8");
%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>获取</title>
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>

<script type="text/javascript">
	$(document).ready(function(){
	       $('#name').blur(function(){
	         var params = {
	           "user.name":$('#name').val(),
	           "user.sex":$('#sex').val()
	         };
	          $.ajax({
	             type:"get",
	             url:"ajax/checkAction",
	             dataType:"json",
	             data:params,
	             success:function(data){
	                document.getElementById("info").innerHTML="<div style='color:red;'>"+data.mydata+"</div>";
	                
	             }
	          });
	       });
	});
</script>

</head>
<body>
	<input type="button" value="获取" id="btnGet" />
	<form id="theForm" action="">
	   姓名:<input id="name" type="text" value="panjone" />
	   性别:<input id="sex" type="text" value="男" />
	</form>
	<div id="info"></div><br>
	<div id="allUser"></div>
</body>
</html>


结果:

 

 

备注:以上的实例可以运行成功,但是本人使用到真实项目时遇到一些小问题。

比如action无法接受到值。折腾了一半天发现,删除 data:params,这一行之后,请求地址自动把参数传进去了(比如:http://127.0.0.1:8080/zlly/ajax/ajaxAction?user.loginId=4554545&clientId=454545 之类的)这时action可以接收到值了,但是注意的是struts.xml配置时 <result name="success" type="json"> <param name="root">mydata</param><result> 当你这样配置时,客户端要使用eval("("+data+")")才能接受到值。这是我出现的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值