3

ユーザー定義オブジェクトを struts2 のアクションにポストしようとしていますが、アクション中のオブジェクトはまだ null です。誰でも私を助けることができますか?手伝ってくれてありがとう。

ユーザー.java

public class User {
    private String username;
    private String password;

    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;
    }
}

これが私のアクションです Login.java

public class Login extends ActionSupport {
    private User user;

    @Override
    public String execute() throws Exception {
        System.out.println(user.getUsername() + " - " + user.getPassword());
        return "success";
    }

    public User getUser() {
        return user;
    }

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

jspページでの私のajax呼び出し:

    $(function() {
        var user = {'user.username': 'abc', 'user.password' : '123'};
        //var user = {username: 'abc', password : '123'};
        $.ajax({
            type : 'POST',
            url : 'login',
            data : JSON.stringify(user),
            //data: user,
            contentType : 'application/json',
            success : function(result) {
                alert("hh");
            }
        });
    });

struts.xml

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="struts2jquery" extends="struts-default, json-default">
        <action name="login" class="com.myapp.action.Login">
            <result name="success">result.jsp</result>
        </action>
    </package>
</struts>
4

1 に答える 1

2

最後に、私はそれを解決しました:D. contentType: "application/json"ajax 呼び出しの行を削除するだけです。現在の ajax 呼び出しは次のとおりです。

        var u = {'user.username': 'abc', 'user.password' : '123'};
        $.ajax({
            type : 'POST',
            url : 'login',
            data: u,
            //contentType: "application/json",
            success : function(result) {
                //alert("hh");
            }
        });

みんなありがとう:D

于 2013-09-11T12:44:17.447 に答える