JSP代码:...
<body onload="getusers()">
<form action="<%=request.getContextPath()%>/Login.do?method=loading"<--这里是action的地址
name="actionform" method="post">
<table align="center" width="500" class="table">
<tr>
<td>
<fieldset style="border-color: #239002">
<legend>
职员登录
</legend>
<table height="200" border="0" align="center" cellpadding="0"
cellspacing="0">
<tr>
<td align="center" width="34%">
&nbsp;&nbsp;&nbsp;&nbsp;用户编号:
</td>
<td align="left" width="150">
<input type="text" name="ucode" style="width: 90%"  >
</td>
<td align="left" width="20%">
<select id="codename" name="codename" onchange="selectcode();"> </select>
</td>
</tr>
<tr>
<td align="center">
&nbsp;&nbsp;&nbsp;&nbsp;口令:
</td>
<td align="left" colspan="2">
<input type="password" name="pwd" style="width: 100%"  ">
</td>
</tr>
...
现在想用extjs做界面
...
var content = new Ext.FormPanel({ 
baseCls : "x-plain", 
layout : 'form',
items : [{
fieldLabel : " ",
baseCls : "x-plain"
}, {
xtype : "panel",
baseCls : "x-plain",
layout : 'column',
fieldLabel : "用户编号",
isFormField : true,
allowBlank : false,
items : [{
columnWidth : .4,
baseCls : "x-plain",
xtype : "textfield", 
disabled : false,
name : "ucode",  
}, {
columnWidth : .4,
layout : "form",
baseCls : "x-plain",
labelWidth : 10,// 注意,这个参数在这里可以调整简单fieldLabel的布局位置
items : [{
xtype : "combo",
name : "Degree", 
store : ["用户名"],
emptyText : "用户…",
allowBlank : false,
anchor : "100%"
}]
}]
}, {
xtype : "textfield",
fieldLabel : "口 令", 
disabled : false,
name : "pwd",
inputType : "password", 
}]
});var win = new Ext.Window({
title : '登陆框',
closable : false,
collapsible : true,
plain : true,
modal : true,
resizable : false,
maxinizable : false,
maximized : false,
width : 340,
height : 200,
bodyStyle : 'padding:10px',
items : [content],
buttonAlign : 'center',
buttons : [{
text : "登陆",
id : "b1",
type : 'submit',
handler : function() { content.form.doAction('submit', {
url : "Login.do?method=loading",//就这个action地址和原来jspform里的地址应该一样,但是怎么提交后台都无法获得信息,连调试也进不去
method : 'POST',
params : {
ucode : '001',//还有这里如何取到formpanel上的textfield值
pwd : ''
},
waitTitle : '连接中',
waitMsg : '传送数据...',
success : function() {
Ext.Msg.alert('Status',
'Login Successful!'   
);
},
failure : function(form, action) {
Ext.Msg.alert('Warning!', '非常抱歉!,登录失败');
content.getForm().reset()
}
});
},
scope : this
}, {
text : "重置",
handler : function() {
content.getForm().reset()
},
scope : this
}]
});...

解决方案 »

  1.   

    就是 content.form.doAction('submit', {
                url: 这个应该怎么写;
    原来jsp里是 
     <form action="<%=request.getContextPath()%>/Login.do?method=loading"            name="actionform" method="post">
    我url:"<%=request.getContextPath()%>/Login.do?method=loading" 
    url:"/Login.do?method=loading" 
    url:"Login.do?method=loading" 
    都不行;!~~
      

  2.   

    你改成这样啊,试试:   handler : function() {               
                          content.form.submit({
                   url : "Login.do?method=loading",//就这个action地址和原来jspform里的地址应该一样,但是怎么提交后台都无法获得信息,连调试也进不去
                                    method : 'GET',
                                    params : {
                                        ucode : '001',//还有这里如何取到formpanel上的textfield值
                                        pwd : ''
                                    },
                                    waitTitle : '连接中',
                                    waitMsg : '传送数据...',
                                    success : function() {
                                        Ext.Msg.alert('Status',
                                                'Login Successful!'   
                                                );
                                    },
                                    failure : function(form, action) {
                                        Ext.Msg.alert('Warning!', '非常抱歉!,登录失败');
                                        content.getForm().reset()
                                    }
                                });
                    },
      

  3.   

    就一个post 改成 get? 
    test...
    [15秒后]
    还是不行;
    连action里跳不进去
      

  4.   

    Extjs :有三种提交方式和传统的表单一样
    、原始form提交、两种Ajax提交
    给你说一下:Ajax
    1、function s(){
     
      gasTabForm.form.submit({  //提交表单
     
      waitTitle:'请稍后',
      waitMsg:'正在保存数据,请稍后。',
      url:'MmsMaintainRecordAction!saveMmsMaintainRecord.action',
      method:'POST',
      success:function(form,action){  Ext.Msg.alert("提示框","数据匹配无误!OK ,欢迎使用。");

      },
      failure:function(form,action){  Ext.Msg.alert("提示框","数据匹配错误!请重新填写。");
     
      }
     
      });
     
      }
    2、
    Ext.lib.Ajax.request(
      'post','MmsMaintainRecordAction!saveMmsMaintainRecord.action',
       {      success:function(){提交成功……处理},
          failure:function(){提交失败……处理}
      
      }
    );没什么么难的,多练练就行了。
      

  5.   

    嗯 你这个我昨天搜到过了;我用的是struts1.2
    现在是没法调试,最郁闷了;连哪个地方有问题都不清楚;
    url 进不去 ;;提交不了;
      

  6.   

    或者你那url加个contextpath试试:var contextpath = '<%=request.getContextPath()%>';
    url : contextpath +"/Login.do?method=loading",
      

  7.   

    对,原来我也有这个的
    url : "<%=request.getContextPath()%>/Login.do?method=loading",
      

  8.   

    <%=request.getContextPath()%> 这个不能写在js文件  要在jsp里先写好一个变量传递进来才可以的;
    还有 失败的时候
    failure : function(form, action) {
    Ext.Msg.alert('Warning!', '非常抱歉!,登录失败'
    action.failureType);//查看下失败是哪个方面的问题
    content.getForm().reset()
    }
    这个小问题居然困扰了好几天;网上也不太好找;可能关键词没用好.