ajax提交数据后 ,怎么取值??

 <script type="text/javascript">
   function validate(){
    //var username = $('#usernmae').val();
    var username = document.getElementById("username").value;
    alert(username);
    $.ajax({
        url:"register",
        type:"post",
        date:{username:username},
        success:function(data){
            $('#message').html(data);
        }

    });


    ajax跟struts2结合,后台java代码怎么取值,如果是Jason的时候怎么取值??我在后台结果视图中实用的stream流的形式返回的result,想弄明白,ajax跟struts2之间的数据流转到底是怎么样的形式?????如果是Jason的话,应该怎么取值????有没有深入研究过的人??

post回去就相当于表单,直接用参数就可以了。

你这个问题边上好多乱七八糟的条,看的我眼晕,异步传输,直接相当于表单,就过去了,在后台直接用参数接受;你不是set/get方法了么,所以可以取得
这个参数值,之后直接完成功能,传回前台,这里有个问题,你在ajax中写的datatype是什么类型就要传回什么类型,有点废话了- - 。最后浏览器自己会
识别出这个串子的,你可以用火狐看到,希望对你有用!!!加油

如果你在控制器中也就是你url对应的类中,写了setXX(),getXX()方法,那么可以直接this.XX即可.
如果没写set,get方法,那么可以 ServletActionContext.getRequest().getParameter("XX");

首先你的页面代码有误data参数拼写错误。示例代码:

 <%@ 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 + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>Welcome to BoadVedio</title>
    <script type='text/javascript' src="<%=basePath%>resource/js/jquery-1.8.3.js"></script>
    <script type="text/javascript">
            var basePath = '<%=basePath%>';
            function validate(){
                var username = document.getElementById("username").value;
                $.ajax({
                    url:basePath+"validate.action",
                    type:"post",
                    data:{username:username},
                    success:function(data){
                        var message = data.result.message;
                        $('#message').html(message);
                    }
                });
            }
    </script>
  </head>
  <body>
    <input type="text" name="username" id="username"/>
    <input type="button" value="提交" onclick="validate();"/>
    <div id="message"></div>
  </body>
</html>

其次,你定义Action类包含username属性和一个map类型存放json数据。

 public class ValidateAction extends ActionSupport {
    private String username;
    public Map<String,Object> result = new HashMap<String,Object>();

    public Map<String, Object> getResult() {
        return result;
    }

    public String execute() throws Exception {
        if ("zhangsan".equals(username)) {
            result.put("message", "success结果");
        }

        else {
            System.out.println("error结果");
            result.put("message", "error结果");
        }
        return Action.SUCCESS;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}

第三,配置struts的action的result类型为json且继承json-default。

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <package name="default" extends="json-default">
        <action name="login" class="LoginAction">
            <result name="success">/success.jsp</result>
            <result name="error">/error.jsp</result>
        </action>

        <action name="validate" class="ValidateAction">
            <result type="json" />
        </action>
    </package>
</struts>   

按照以上步骤编写测试代码,需要导入struts2-json-plugin-2.2.3.jar。祝好!

后台Action返回的result类型为json的话,在JSP页面可以直接访问Action的属性result了。
1 Action接收请求数据,只要提供对应属性的getter和setter方法。
2 Action返回结果配置成json时,继承json-default,配置result类型为json。