debug 进步到java文件_debug经历------->java web------>为什么使用接收到的表单元素的值为null...

1.问题描述:

jsp页面中常常有表单元素,有时候需要在该

中使用文件上传标签,为了实现文件上传功能,需要将元素进行二进制封装,此时如果该form中还有普通类型的表单元素,使用request.getParameter(“**”)是无法获取普通表单元素的值的,必须使用smartupload.getRequest().getParameter()才可以获取普通表单元素的值,并且要注意该句话一定要在smartupload.upload()之后执行,否则即使使用smartupload获取,得到的也是null值。

2.debug过程:

Test.jsp

允许上传的文件类型:zip,tar,gz

由于

,表单中所有内容都变成二进制形式向后传送,

在目的页面receive.jsp中直接使用request.getParameter()获取的值是null

receive.jsp

运行结果:

model: null

由上面的运行结果可以看到,直接使用request.getParameter("model")获取封装成二进制形式的表单元素,结果=null

所以想到应该借助于smartupload对象来获取混合表单中的普通表单标签的值,如下程序所示:

接收上述封装成二进制的普通表单元素

model:

结果:

接收上述封装成二进制的普通表单元素

model:null

咦?不是说使用smartupload对象可以获取封装成二进制的普通表单元素吗?为什么得到的结果也是null?

哈哈,下面我们就来看看到底是为什么?

答:你只是声明了一个smartupload对象而已,并没有执行上传操作,所以获得的值当然是null啦,正确的编程方法如下:

接收上述封装成二进制的普通表单元素

upload.initialize(pageContext);//初始化上传操作// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。

upload.setAllowedFilesList("zip,tar,gz");// 4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有//扩展名的文件。//su.setDeniedFilesList("exe,bat,jsp,htm,html,,");

upload.upload();//上传准备StringmodelName=upload.getRequest().getParameter("model");%>

model:

运行结果:

接收上述封装成二进制的普通表单元素

model: modelname用户输入的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值