碰钉子了!J2EE资深高手进!关于代理问题。

APOLLO_TS 2009-08-20 03:36:06
public ActionForward editAcc(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

DiskFileItemFactory factory = new DiskFileItemFactory();
//超越4KB就往磁盘里面写数据,小于这个值就存入内存
factory.setSizeThreshold(4096);
//设置磁盘路径
String filePath=request.getSession().getServletContext().getRealPath("/temp/");
factory.setRepository(new File(filePath));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10000000);
List fileItems = upload.parseRequest(request); //因为ACTION采用了SPRING代理,此构建总是返回一个 size为0的列表。估计是request不能原样传入!
}

可有解决方略,实在不行就改成JSP了。
...全文
306 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
longq121 2009-09-03
  • 打赏
  • 举报
回复
看不出有什么问题,期待高手。
APOLLO_TS 2009-09-03
  • 打赏
  • 举报
回复
改成JSP虽然好用,制御不好整了!先放一下。
APOLLO_TS 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 guixiang155cm 的回复:]
业务类中应该有个 Dao 对象, 你要从容器中获取 业务对象 对Dao进行初始化
[/Quote]
主要是没用DAO。
wing_88 2009-08-27
  • 打赏
  • 举报
回复
如果是没有dao的话,那action也就没必要用代理啊,楼主试试不用代理会怎么样?
APOLLO_TS 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yuwenbao 的回复:]
呵呵,我看也是代理的问题,不过你不能下个断点看下吗?到底是怎么回事,就算被代理了,应该代理中也包含了真正的原样的request,应该有办法获得吧
[/Quote]
走过--返回size为0的List ---原样的到底是什么呢?如何获得都是很大的问题呀!

但是request绝对不影响属性使用。
yuwenbao 2009-08-21
  • 打赏
  • 举报
回复
呵呵,我看也是代理的问题,不过你不能下个断点看下吗?到底是怎么回事,就算被代理了,应该代理中也包含了真正的原样的request,应该有办法获得吧
APOLLO_TS 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 haoziheyezi 的回复:]
貌似你没有使用什么代理
[/Quote]
晕:代理没必要写代码吧!发出来你看吧!
spring配置文件
<bean name="/editfile" class="com.web.actions.CEEditFileAction">
</bean>
struts配置文件
<action
path="/editfile"
type="org.springframework.web.struts.DelegatingActionProxy"
name="CEEditFileForm"
scope="request"
parameter="method"
>
<forward name="editFile" path="/CEEditFile/CEEditFile01.jsp"></forward>


南南北北 2009-08-21
  • 打赏
  • 举报
回复
List fileItems = upload.parseRequest(request);

在parseRequest中看看request是否可用?如果可用,那就是这个方法的问题了.
haoziheyezi 2009-08-21
  • 打赏
  • 举报
回复
貌似你没有使用什么代理
APOLLO_TS 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 norwolfli 的回复:]
和代理没什么关系.
看看你代码其他地方吧.
[/Quote]
代码都贴出来了,就那么一点。别处??

开始我也认为跟代理没有关系,但是后来发现在action中获得环境上下文根本不能用。或是NULL,(如果不代理就能使用)才得出这么个结论。
_Nick_ 2009-08-21
  • 打赏
  • 举报
回复
业务类中应该有个 Dao 对象, 你要从容器中获取 业务对象 对Dao进行初始化
_Nick_ 2009-08-21
  • 打赏
  • 举报
回复
用了代理 ??? 你在 action 中 怎么没有 从容器中 获取 业务的对象,进行初始化? 对象没有初始化, 肯定就会 NULL!
xiechunmei13 2009-08-21
  • 打赏
  • 举报
回复
楼主:我有点不明白你做的意思:

DiskFileItemFactory factory = new DiskFileItemFactory();
//超越4KB就往磁盘里面写数据,小于这个值就存入内存
factory.setSizeThreshold(4096);
//设置磁盘路径 这里设置路径,你这个路劲是保存文件的路劲吧!
String filePath=request.getSession().getServletContext().getRealPath("/temp/");
//这里new 一个file,此file是什么?
factory.setRepository(new File(filePath));

ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10000000);
//upload现在是什么?
List fileItems = upload.parseRequest(request); //因为ACTION采用了SPRING代理,此构建总是返回一个 size为0的列表。估计是request不能原样传入!
楼主:实在不好意思,麻烦给我讲解下好吗?谢谢!
水晶平衡木 2009-08-21
  • 打赏
  • 举报
回复
楼主,你的文件上传的那个页面上,form的参数设置都正确不?
lytcd 2009-08-21
  • 打赏
  • 举报
回复
不明真相菜鸟低调围观大虾们华山论剑
APOLLO_TS 2009-08-21
  • 打赏
  • 举报
回复
看来还是要自己想办法了!!
yuwenbao 2009-08-21
  • 打赏
  • 举报
回复
走过的话,属性没问题的话,那不一定是代理的问题吧,parseRequest的话,分析的应该是http协议的body,你request.getContentLength()看看request.getInputStream看看request里面的内容呢,再看看你的表单的格式啊,还有就是request.getContentType()
南南北北 2009-08-20
  • 打赏
  • 举报
回复
和代理没什么关系.
看看你代码其他地方吧.
bea_java 2009-08-20
  • 打赏
  • 举报
回复
顶下。。期待结果。

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧