【问题标题】:Unable to hit my struts 2 action class using jquery ajax无法使用 jquery ajax 击中我的 struts 2 动作类
【发布时间】:2018-08-04 23:54:31
【问题描述】:

您好,我正在尝试使用 jquery ajax 函数从我的 jsp 页面调用 LoginAction.java。如果我不使用 ajax 函数传递任何参数并且不在 struts.xml 的操作中添加参数标记,我的调用就会正确发生但是当我在 ajax 调用中添加一个对象类型的参数并在 struts 操作中添加参数标记时我的 LoginAction 类没有被调用或命中。 提前致谢。

let email = $("email").val();
        	let fName = $("fName").val();
        	let lName = $("lName").val();
        	let password = $("pwd").val();
        	
        	var newUser = new user(email,fName,lName,password);
        	
        	alert(newUser);
        	
        	$.ajax({
                type: 'GET',
                url:'register.action?user='+new?User,
                success: function(data){
                
                }});

struts.xml:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.devMode" value="true" />
    <package name="default" extends="json-default" namespace="/">
        <action name="register" class="com.blogger.action.LoginAction" method="register">
            <param name = "user">${user}</param>
            <result name="SUCCESS" type="json"></result>
        </action>
    </package>
</struts>

LoginAction.java:

public class LoginAction extends ActionSupport{

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

    private User user;

    public User getUser() {
        return user;
    }

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

    public String register() {
        System.out.println("in register function");
        User newU = user;
        return SUCCESS;
    }

}

【问题讨论】:

    标签: javascript java jquery maven


    【解决方案1】:

    我写的 ajax 语法是错误的。它必须像下面的那样。

        let email = $("#email").val();
    let fName = $("#fName").val();
    let lName = $("#lName").val();
    let password = $("#pwd").val();
    
    alert(email+" "+fName+" "+lName+" "+password);
    var newUser = JSON.stringify({userList:new user(email,fName,lName,password)});
    
    $.ajax({
        type: 'GET',
        url:'register.action',
        data : {userList : newUser},
        contentType:"application/json",
        dataType:"json",
        success: function(data){
    
        }
        });
    

    我的 struts.xml 应该包含如下 param 标签。

    <action name="register" class="com.blogger.action.LoginAction" method="register">
            <param name="userList">userList</param>
            <result name= "success" type="json"></result>
        </action>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多