先说一下场景,技术是struts2+jsp。我的一个页面a.jsp中有放了一个div,用于动态加载另一个b.jsp的内容。b.jsp中可能有多个<s:file>,也可能没有。提交按钮是放在a.jsp的,也就是说a.jsp要负责上传b.jsp中选择的文件。现在的问题是:
用struts2传统的方法,在action上先定义好一个私有成员,取名跟界面上的id一致。但是我的case里b.jsp的文件上传控件id是随别人定的,我顶多是要求id必须是*_file的格式,所以这个预先定义的私有成员名字就搞不定,更别说与之关联的ContentType和FileName了。我自己考虑了一个解法方案,但由于技术不到家却实现不出来,请各位帮帮忙:
1.action中直接定义一个File[] 私有成员,以及FileContentType[]和FileName[],我不用struts2的set和get,用老方法直接在servlet中取。问题是在servlet取这些东东的API是什么?
2.把数组填值写在拦截器里。问题是struts2哪个拦截器是干这个的,如何实现?
用struts2传统的方法,在action上先定义好一个私有成员,取名跟界面上的id一致。但是我的case里b.jsp的文件上传控件id是随别人定的,我顶多是要求id必须是*_file的格式,所以这个预先定义的私有成员名字就搞不定,更别说与之关联的ContentType和FileName了。我自己考虑了一个解法方案,但由于技术不到家却实现不出来,请各位帮帮忙:
1.action中直接定义一个File[] 私有成员,以及FileContentType[]和FileName[],我不用struts2的set和get,用老方法直接在servlet中取。问题是在servlet取这些东东的API是什么?
2.把数组填值写在拦截器里。问题是struts2哪个拦截器是干这个的,如何实现?
解决方案 »
- 忘记密码的功能??
- 一个关于java调用c#写的webservice的问题(传出web method中的ref 参数)
- javabean session线程安全
- 求助各位大拿,用java ee写的五子棋怎么实现对战双方对棋盘信息的共享以及通信
- 所有的老师以及公司的高手我都请教过,就是没解决。
- 求助:javascript 能否检测系统是否安装了WORD2003读取word2007文件的插件
- 如何求出两日期之间的工作日数?急急急!!!(分不够可以在加)
- 高分:如何将JSP程序发布到JRUN或者TOMCAT?
- jsp的网页是不是都必须自己机子是服务器才能有??
- java从xml中查询数据
- Oracle数据库移植到mysql问题
- 关于 jsp:useBean 的使用
//TODO mj:报错
}
MultiPartRequestWrapper multiWrapper = (MultiPartRequestWrapper) request;
if (multiWrapper.hasErrors()) {
//TODO mj:报错
}//所以request里的参数和值都在这
Map<String, Object> params = ac.getParameters();//这个枚举是所以的file型
Enumeration fileParameterNames = multiWrapper.getFileParameterNames();
while (fileParameterNames != null && fileParameterNames.hasMoreElements()) {
//取file型控件名
String inputName = (String) fileParameterNames.nextElement(); //取文件实体
File file = (File) params.get(inputName);
//取文件类型
String contentType = params.get(inputName + "ContentType");
//取文件名
String fileName = params.get(inputName + "FileName"); //组装在我自己的File[], FileContentType[], FileName[]中
……
}这些代码直接写在action的execute里。没用拦截器,我太优雅。目前还没来得及测试,不过应该是可行的。