1、form表单提交中加上class="pageForm required-validate" 就会出现页面一直加载中
2、struts2文件上传时 from表单中加上 onsubmit="return navTabSearch(this);" 时 上传文件的路径就不能传递到action中的File 对象中! 不加上这个onsubmit 就可以提交到action中 但是那样跳转回来时框架旁边的就没了,只是另外一个单独的页面 一直在线求助 谢谢那位大神
问题1,你的class里面是不是有什么校验操作呢?
问题2,form的提交,如果你设置了onsubmit那么提交就走入到navTabSearch,而不是form的action请求了。那么你后台的Action就不可能直接收到这个文件表单。
首先确认一下,你是不是需要在form提交之前进行表单数据校验,并且提交操作不是走form的自动跳转,而是在navTabSearch中ajax请求完成上传呢?如果是这样的话,可以在Action中使用ServletFileUpload解析上传的文件。
示例代码:
public void execute(HttpServletRequest request, HttpServletResponse response){
ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
//引入MaterialsService
MaterialsService materialsService = context.getBean(MaterialsService.class);
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置内存缓冲区,超过后写入临时文件
factory.setSizeThreshold(10240000);
// 设置文件上传路径,文件统一存储在视频文件夹下的Materials文件夹下
String basepath = SystemConfig.getVodFolder() + "/Materials/";
File file = new File(basepath);
if (!file.exists())
file.mkdirs();
factory.setRepository(file);
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置单个文件的最大上传值
upload.setFileSizeMax(10002400000l);
// 设置整个request的最大值
upload.setSizeMax(10002400000l);
upload.setHeaderEncoding("UTF-8");
try {
List<?> items = upload.parseRequest(request);
FileItem item = null;
String filePath = null;
String fileName = null;
long fileSize = 0;
String flg = null;
for (int i = 0; i < items.size(); i++) {
item = (FileItem) items.get(i);
// 保存文件
if (!item.isFormField() && item.getName().length() > 0) {
fileName = item.getName();//真实文件名
fileSize = item.getSize();
flg = fileName.substring(fileName.lastIndexOf(".") + 1);//截取扩展名
//为防止文件重名,则将存储名称使用UUIDGenerator重置
String flgName = UUIDGenerator.geterateId() + "." + flg;
// fileName.substring(0, fileName.lastIndexOf(".")) + "_" + String.valueOf(System.currentTimeMillis()) + "." + flg;
filePath = basepath + flgName;
File uploadedFile = new File(filePath);
//写文件
item.write(uploadedFile);
//那么这个File uploadedFile就是客户端上传的文件了
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
方法的参数的获取,可以网上搜一下struts2如何获取HttpServletRequest 和HttpServletResponse。依照你的需求,就是不能利用struts2完成请求表单数据的映射,只能自己解析HttpServletRequest中的表单数据了。
不知道你对dwz (QUI)框架了解吗?
我想提交过后跳转的不是一个新的页面 而是一个提示成功的页面 并且是嵌入到框架中的
文件上传我写好了 但是就是返回的页面有问题
不知道你对dwz (QUI)框架了解吗?
我想提交过后跳转的不是一个新的页面 而是一个提示成功的页面 并且是嵌入到框架中的
文件上传我写好了 但是就是返回的页面有问题