在ExtJs中将参数传递给服务器

时间:2011-06-09 12:29:45

标签: servlets extjs

我是ExtJs的新手。

当我点击按钮时,我想将文本框中的值传递给服务器(Servlet)。但是,由于我是新手,我不知道该怎么做。

请有人帮我解决这个问题,或者为我推荐一些教程或示例

2 个答案:

答案 0 :(得分:4)

Ext.Ajax.request可以帮到你。

代码将如下所示:

new Ext.Button({
    text: "Send to server",
    handler: function () {
        Ext.Ajax.request({
            url: 'myPage.php',
            success: function (){alert('Value has been sent!');},
            failure: function (){alert('Failure of sending...');},
            headers: {
                'my-header': 'foo'
            },
            params: { foo: myTextField.getValue() }
        });
    }
})

答案 1 :(得分:3)

在url中放入你的Servlet类名。 如果您有一个包含多个按钮的表单,例如“保存”,“更新”,“删除”,则可以执行以下操作:

// Your form fields ...
var buttonAdd = new Ext.Button({text:'Add', handler:addFunction});
var deleteAdd = new Ext.Button({text:'Delete', handler:deleteFunction});
function addFunction(){
    Ext.Ajax.Request({
        url: 'MyServlet', // you can fix a parameter like this : MyServlet?action=add
        method: 'POST',
        params: {
            myField1: myField1.getValue()
            // all your params.... 
        }
        success: function (result, request){
            alert('Succesfully added ' + result.responseText);
        },
        failure: function (result, request){
            alert('Error in server' + result.responseText);
        }
});

function deleteFunction(){
    Ext.Ajax.Request({
        url: 'MyServlet', // you can fix a parameter like this : MyServlet?action=delete
        method: 'POST',
        params: {
            myField1: myField1.getValue()
            // all your params.... 
        }
        success: function (result, request){
            alert('Succesfully added ' + result.responseText);
        },
        failure: function (result, request){
            alert('Error in server' + result.responseText);
        }
});
}

在你的Servlet中,你可以这样做:

public void doPost(HttpServletRequest request, HttpServletResponse response){
    String action = request.getParameter("action");
    if(action.equals("add")){
        // Your code for add method goes here
    } else if(action.equals("delete")){
        // Your code for delete method goes here
    }
}