king9577
2009-05-07 17:06
浏览 176
已采纳

EXTJS和struts2整合,提交后命名空间被改变

我在struts.xml文件中定义了两个包,二者的命名空间分别是"/king"和"/blank",

同时,在JSP中,用EXTJS构造了一个formPanel,其url设置成:url:"blank/blankAction.action"。

在提交的时候发生如下问题:There is no Action mapped for namespace /king and action name blankAction. - [unknown location]。

但当我用IE直接去访问那个URL(http://localhost:8080/DHME2/blank/blankAction.action)时,
却可以正常访问并得到一个JSON的数据。这表明我的Action类并没有问题。

看起来在提交的时候,提交url由“blank/blankAction.action”被改成了“king/blankAction.action”。

我不知道这是在EXTJS提交的时候改的还是struts2框架在做处理的时候改的。哪位高人能指教一下?谢谢了。

[b]配置文件代码如下:[/b][i][/i]

    <!-- 注册action -->
    <action name="resister" class="ResisterAction">
        <result name="success" type="tiles">resisterOK</result>
        <result name="input" type="tiles">reResister</result>
        <!-- 加入自定义的拦截器将覆盖默认的拦截器栈,所以要显性加入默认的defaultStack(如下句)。 -->
        <interceptor-ref name="logger" />
        <interceptor-ref name="defaultStack" />
    </action>

<!-- extjs的ajax测试用Action -->
<package name="blankPackage" namespace="/blank" extends="json-default">
    <action name="blankAction" class="BlankAction" method="execute">
    <result type="json"/>
        <!-- 加入自定义的拦截器将覆盖默认的拦截器栈,所以要显性加入默认的defaultStack(如下句)。 -->
        <interceptor-ref name="logger" />
        <interceptor-ref name="defaultStack"/>
    </action>
</package>

[b]jsp的代码:[/b][i][/i]

// form contain tabs
var tab2 = new Ext.FormPanel({
//labelAlign: 'top',
title: '新用户信息',
id:"resisterForm",
bodyStyle:'padding:5px',
//autoScroll:true,
width: 555,
items: [
{
xtype:'tabpanel',
plain:true,//tab页的背景色。设为true时无背景,为false时有背景
activeTab:0,
height:510,//此长度决定纵向是否出现滚动条
defaults:{bodyStyle:'padding:10px'},
items:[{
title:'个人基本信息',
layout:'form',
autoScroll:true,
defaults: {width: 500},//不能大于form的宽度,否则水平方向会出滚动条
defaultType: 'textfield',
items: [
{
xtype:"fieldset",
title:"自然信息",
defaults:{xtype:"textfield",width:180},
items:[
{
fieldLabel: '姓名',
name: 'user.username',
allowBlank:false
},{
fieldLabel: '性别',
xtype:'radiogroup',
name:'user.sex',
width:180,
items: [
{boxLabel: '男人', name: 'user.sex', inputValue: 1, checked: true},
{boxLabel: '女人', name: 'user.sex', inputValue: 2},
{boxLabel: '女博士', name: 'user.sex', inputValue: 3}
]
},{
fieldLabel: '生日',
name: 'user.birthday',
format:'Y-m-d',//2009-01-02.格式说明要参考Date的API文档
xtype:'datefield'
}
]
}
]
}
]
}
],// form的主体部分结束

            buttons: [{//form的按钮部分
                text: '保存',
                handler:this.save,
                scope:this
            },{
                text: '重置'
            },{
                text: '取消'
            }
            ]
            // form的按钮部分结束
        });

[b]// 提交的处理方法的代码:[/b][i][/i]

function save(){
    Ext.getCmp("resisterForm").getForm().submit({
            waitTitle:"等等啊",
            waitMsg:'正在保存...',
            // ajax way
            url:"[b]blank/blankAction.action[/b][i][/i]",
            method:'POST',
            success:function(){
                Ext.MessageBox.alert("save ok");         
            },
            failure:function(){

                Ext.MessageBox.alert("同志,出错了","出错了哈哈");         
            },
            scope:this
    });
}
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • zhoujuan520 2009-05-07 17:23
    已采纳

    url : 'http://localhost:8080/DHME2/blank/blankAction.action' 试试

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题