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

来源:互联网 发布:ubuntu不能切换输入法 编辑:程序博客网 时间:2024/06/05 01:54

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+")")才能接受到值。这是我出现的问题。

原创粉丝点击