Struts2+Ajax

首先需准备json相关的六个核心jar包,链接如下

https://download.csdn.net/download/kuzma_/11692802

需新建一个json.jsp文件,核心代码如下

<s:form method="post" namespace="/">
    <s:textfield name="username" label="用户名" id="username"></s:textfield>
    <s:password name="password" label="密码" id="password"></s:password>
    <tr>
        <td colspan="2">
            <input type="submit" value="提交" οnclick="login();">
        </td>
    </tr>
</s:form>

js代码如下

function login(){
        var username = document.getElementById("username").value;
        var password = document.getElementById("password").value;
         $.ajax({
             type:"POST",
             url:"JsonAction",
             data:{username:username,password:password},
             dataType:"json",
             success:function(data){
                 var result = jQuery.parseJSON(data);//将字符串转换成json对象
                 
                 alert(data);
                 alert(result);
                 alert(result["username"]);
                 alert(result["password"]);
             }
         })
    }

然后还需新建一个JsonAction类用来处理前端发过来的请求,核心代码如下

public class JsonAction extends ActionSupport{

    private String username;
    private String password;
    private String result;
    
    public String getResult() {
        return result;
    }
    public void setResult(String result) {
        this.result = result;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
    public String executeAjax() throws Exception {
        
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("username", getUsername());
        map.put("password", getPassword());
        JSONObject json = JSONObject.fromObject(map);
        result = json.toString();
        
        System.out.println("map['username']: " + map.get("username"));
        
        return SUCCESS;
    }
    
    
}
需要特别注意的是变量result是前台需要返回的数据,所以该变量必须有setter和getter方法,否则数据不能传回前台。

最后需要配置struts.xml文件,核心代码如下:

<package name="ccnuJson" extends="struts-default,json-default">
    
        <action name="JsonAction" class="com.ccnu.action.JsonAction" method="executeAjax">
            <result type="json">
                <param name="root">result</param>
            </result>
            
        </action>
    
    </package>

此处有三个特别需要注意的地方

1.必须继承json-default包,因为只有在该包下才有json类型的Result,否则会报错

2.<action>标签的method的method一定要配置

3.必须配置root参数,因为该参数将json字符串返回给前台

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值