Struts2中关于servlet的问题
利用Ext4弄了一个图片上传的模块,现在把struts2框架结合了进去,发现图片上传不了了,原因是被struts2的拦截器拦截了,原先,图片上传通过post的方式提交到一个servlet上的,通过servlet来保存图片,根据网上的说法,改Web.xml的配置还是不行,各位有什么办法,附上代码:
Web.xml;
<servlet>
<servlet-name>UploadServlet</servlet-name>
<servlet-class>com.yazs.servlet.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UploadServlet</servlet-name>
<url-pattern>/WebContent/page/admin/add_photo/upload</url-pattern>
</servlet-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
servlet:
public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws 
ServletException, 
IOException {
		
		
String path = request.getSession().getServletContext().getRealPath("\\images");
		DiskFileItemFactory factory = new DiskFileItemFactory();
		ServletFileUpload upload = new ServletFileUpload(factory);
try {
List<FileItem> list = (List<FileItem>) upload.parseRequest(request);
			for (FileItem fileItem : list) {
				String fileName = fileItem.getName();
				File file = new File(path + fileName);
				System.out.println(path +"\\" +fileName);
				fileItem.write(file);
				fileItem.delete();
			}
		} catch (Exception e) {
			e.printStackTrace();
			
		}
	}
给位有什么方法吗?我试着把这个servlet改成Action但是获取不到数据,struts2正在学习中……
              
              
------解决方案--------------------你的问题是???
------解决方案--------------------action文件上传从前台到后台都有相应设置,你只给这点代码难以回答你的问题。
目前从你的代码中这句:
for (FileItem fileItem : list) {...
 fileItem是要判断的,即:
 if (item.isFormField()) {// 判断是文件还是文本信息