FileUploadField 选择了一个文件,传到struts2的Action中,显示为null, 是什么问题?

问题描述

我有个formpanel, 里面有个FileUploadField,选择一个文件后,传到struts2的Action中,但是从调试的显示中看到参数没有传过去,响应的结果为null. 我想请大家帮我看看代码怎么改,多谢了 MyDesktop.ScriptWindow = Ext.extend(Ext.app.Module, {    id:'script-win',    init : function(){        this.launcher = {            text: 'Script Selection',            iconCls:'tabs',            handler : this.createWindow,            scope: this        }    },    createWindow : function(){        var desktop = this.app.getDesktop();        var win = desktop.getWindow('script-win');        if(!win){            win = desktop.createWindow({                id: 'script-win',                title:'Script Selection',                width:400,                height:450,                iconCls: 'tabs',                shim:false,                animCollapse:false,                border:false,                constrainHeader:true,                layout: 'fit',                items: new Ext.FormPanel({         id:'script',      labelWidth: 70,       frame:true,      bodyStyle:'padding:5px 5px 0',      width: 350,      items: [{       xtype:'fieldset',       title: 'Script Load',       collapsible: true,       autoHeight:true,       defaults: {width: 210},       defaultType: 'textfield',              items :[new Ext.ux.form.FileUploadField({        id: 'upload',        name: 'upload',        emptyText: '',        fieldLabel: 'Script',        allowBlank:false,        buttonText: '',        buttonCfg: {         iconCls: 'tabs'        }       }),        new Ext.form.ComboBox({        id: 'mobile',        name:'mobile',        triggerAction:'all',        fieldLabel: 'Phone',        store: store,        displayField: 'imsi',        valueField: 'ip',        mode:'local',        allowBlank:false,        emptyText: 'Select a phone'       })       ],        buttons: [{        type: 'submit',        text: 'Associate',        handler:function(){         //Ext.Msg.alert("success", Ext.getCmp('upload').getValue());                  if(Ext.getCmp('script').getForm().isValid()){          Ext.getCmp('script').getForm().doAction("submit",{           url:"scriptLoad.action",           method:"post",           success:function(form,action){            Ext.Msg.alert("Success",action.result.message);           },           failure:function(form, action){            Ext.Msg.alert("Failer",action.result.message);           }          })         }        }       },{        text: 'Cancel',        handler: function(){         Ext.getCmp('upload').reset();         Ext.getCmp('mobile').reset();        }       }]      },      {       xtype:'fieldset',       title: 'Script View',       collapsible: true,       height:250,       labelWidth: 2,        items : new Ext.form.TextArea({        xtype:'textarea',        name: 'script',        anchor: '100% 100%',        disabled: true,        value:'loop->1:100, CALL -> <TO_BE_DEFINED>:5,  SLEEP -> 2000, END LOOP -> ID=1'       })      }]      })            });        }        win.show();    }}); LoadScriptAction.javapublic class LoadScriptAction extends ActionSupport{ private File upload; private String uploadContentType; private String uploadFileName; private String mobile; private String message;  public String getMessage() {  return message; } public void setMessage(String message) {  this.message = message; } public File getUpload() {  return upload; } public void setUpload(File upload) {  this.upload = upload; } public String getUploadContentType() {  return uploadContentType; } public void setUploadContentType(String uploadContentType) {  this.uploadContentType = uploadContentType; } public String getUploadFileName() {  return uploadFileName; } public void setUploadFileName(String uploadFileName) {  this.uploadFileName = uploadFileName; } public String getMobile() {  return mobile; } public void setMobile(String mobile) {  this.mobile = mobile; }  public String execute() throws Exception{  message = this.uploadFileName + " " + this.mobile;  return SUCCESS; }}<struts>      <include file="struts-default.xml"/>              <package name="script" extends="json-default">          <action name="scriptLoad" class="android.action.LoadScriptAction">              <result type="json"/>          </action>       </package> </struts>   调试显示: (我要传两个参数过去,一个是我选择的文件,一个是mobile的号码。为什么这里只显示传了一个参数过去?) 参数application/x-www-form-urlencoded

解决方案

你用application/x-www-form-urlencoded传输FileUpload文件上传时肯定不行啊,你得设置 multipart/form-data, 这样不论是文本还是文件都可以的,不过在Ext中怎么设置成multipart/form-data 你自己找一下。
解决方案二:
upload = Ext.extend(Ext.Window,{ title : '批量导入', width : 350, height : 80, autoHeight : true, modal : true, collapsible : true, frame : true, resizable : false, buttonAlign : 'center', initComponent : function(){ Ext.apply(this,{ items : [{ xtype : 'form', id : 'form', labelWidth : 70, labelAlign : 'right', border : false, fileUpload : true, baseCls : 'x-plain', bodyStyle : 'padding : 5px 5px 0', defaults : { anchor : '100%', magTarget : 'side' }, items : [{xtype : 'textfield',inputType : 'file',name:'upload',fieldLabel : '文件上传'}] }] }); upload.superclass.initComponent.apply(this,arguments); }});
解决方案三:
http://kangsoft.iteye.com/blog/677773楼主看一下这个
解决方案四:
不懂。。。。是不是因为默认的参数类型是text,所以文件没上传上去items: [{ xtype:'fieldset', title: 'Script Load', collapsible: true, autoHeight:true, defaults: {width: 210}, defaultType: 'textfield',

时间: 2024-08-26 22:12:23

FileUploadField 选择了一个文件,传到struts2的Action中,显示为null, 是什么问题?的相关文章

在struts2的action中如何获得上传文件在客户端的路径?

问题描述 在struts2的action中如何获得上传文件在客户端的路径? 解决方案 解决方案二:ServletActionContext.getServletContext().getRealPath("/UploadImages")解决方案三:用js拿到值,然后放到隐藏域里

substring-给一个文件夹地址,此地址中xxx是不固定长度的任意字符串 要怎么截取到这个xxx

问题描述 给一个文件夹地址,此地址中xxx是不固定长度的任意字符串 要怎么截取到这个xxx 地址如下:E:workspacetrunkProject...ToolsV12DataBackup_xxx_yy-MM-dd_hh'mm 这是我自己的代码 为什么输出的还是原来的字符串? 表示我是菜鸟 求大神指教string str="E:workspacetrunkProject...ToolsV12DataBackup_xxx_yy-MM-dd_hh'mm"";str.Substr

用java实现 把一个文件保存到oracle数据库表中

问题描述 如何把一个文件保存到oracle数据库表中 用java实现 解决方案 public class InsertBlobData {Connection con = null;/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {// TODO Auto-generated method stubInsertBlobData data = new In

struct2框架jsp页面传对象参数到action中失败

问题描述 struct2框架jsp页面传对象参数到action中失败 jsp页面对象方式传参进action中,在action中定义了getter.setter方法,但是还是取不到值!结果: 解决方案 set和get方法是你自己写的还是自动生成的,,写的有问题,,setFlower()和getFlower(),,这样才行 解决方案二: 你的name和action中的字段对不上啊页面上写这个flower.goodsId前面有一个子对象是flower 所以action中要有一个子对象 是flower和

怎样让一个一个字段数据是数字在页面中显示文字

问题描述 怎样让一个一个字段数据是数字在页面中显示文字 数据库中有个status这个字段但是数据是数字,这个字段表示的是一个状态怎样在这个下拉框中显示文字 解决方案 送数据库中获取该字段的值,设置一个数字类型的变量,根据获取的值给该数字变量进行不同的赋值,最后传到下拉框即可 解决方案二: 你 这是网页还是WinForm程序? 下拉框的选项是有Text和Value属性的,进行中就是Text,Value就是数据库中的值. 解决方案三: 你主要就判断他的数字等于多少,然后为他赋值,把值放到下拉框 显示

java swing中一个JTree如何在多个panel中显示

问题描述 java swing中一个JTree如何在多个panel中显示 要实现的功能是 需要在2个panel(A, B )中显示用户组的树结构, 其中有一个panel(B)中提供了对树的增删改,运行程序首先显示A, 通过A上的按钮点击事件显示B, 要在B更改同时更新A上的显示情况, 现在遇到的情况是:当点击A上的按钮显示B时,A上的tree就不见了: 怎么解决啊? A的部分代码 DefaultMutableTreeNode root = new DefaultMutableTreeNode("

.net 实现图片上传的同时在网页中显示,主要是上传控件没有事件,想不出怎么弄,求大手指点

问题描述 .net实现图片上传的同时在网页中显示,主要是上传控件没有事件,想不出来怎么弄,求大手指点 解决方案 解决方案二:如果你是用的服务器控件,那也有事件的啊如果你不是的话,那就要用js来通知更新,可以的方法有:1.后台返回js,更新指定img2.前端定时轮询,超出次数则提示上传失败

利用javascript 如何拿到struts2的action中变量的值

问题描述 利用javascript 如何拿到struts2的action中变量的值,或者利用javasc如何得到java类中方法的返回值 问题补充:7454103 写道 解决方案 首先 struts2 提供的 s 标签 就可以取到action里面的属性! 或者 方法的返回值其次! 如果只能js 的话 就用 ajax 去后台 跑一趟 也是很方便的!解决方案二:struts json组合使用解决方案三:Ajax可以操作java方法

struts2的action中为什么获取不到 request.getParamter()中的值

问题描述 方法执行没有问题,只是request.getParamter或者request.getAttribute都取不到值,在后台输出了一下,发现为null.说明前台的request根本没有传递到后台去,我百度了很多,说可能要用上拦截器,弄了好久都不成功,没有办法,只能求助广大网友了!先贴一下局部的代码吧struts.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"