这个功能做了很长时间昨天终于差不多完成了。所以总结一下。
首先1:在web.xml里除了原有的spring dispatcher servlet ,还要增加一个,以处理spring mvc 和 flex的交互。
<servlet>
<servlet-name>General Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/general/upload.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>General Servlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
第二步:编辑你的upload.xml
<context:annotation-config/>
<!-- 把标记了@Controller注解的类转换为bean -->
<context:component-scan base-package="system.wlims.basic.action" />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!-这句话 一定要有 不然找不到 困扰很久 感谢 wyy-->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 以字节为单位的最大上传文件的大小 -->
<property name="maxUploadSize" value="100000" />
</bean>
第三步 : 用的是 spring mvc 注释 ,下面是action
@RequestMapping("/basic/staff/spring/imageUpload.action")
@ResponseBody//这个是表示,返回内容以这里构造的为准。不返回常用的视图。需要配置支持。
public void upload(@RequestParam("name") String fname, //设置请求参数的名称和类型
@RequestParam("file") CommonsMultipartFile file)throws Exception{
Workbook workbook = null;
workbook = Workbook.getWorkbook(file.getInputStream());
Sheet sheet = workbook.getSheet(0);
System.out.println(sheet.getRows());}
有几个注意的地方:1@RequestParam("name") 中的name和flex中对应,file也是一样
第四步 :flex前台 网上有很多可以参考,这里就不赘述了,几个要注意的
/**CloseEvent事件监听处理函数,访问upload的servlet服务
* @param e,Event类型事件参数
* @author 54cwf@163.com
* * @return void
* */
private function proceedWithUpload(e:CloseEvent): void
{
if (e.detail == Alert.YES)
{
var params:URLVariables = new URLVariables();
params.name = "123213";
var request:URLRequest = new URLRequest("spring/imageUpload.action");
request.data = params;
try
{
file.upload(request, "file");
}
catch (error:Error)
{
Alert.show("上传失败","错误");
}
}
}
可以看到 params.name = "123213"; 这里的name和 刚才的所说的 name对应
file.upload(request, "file"); 后面“”中的file 和 param的file对应
new URLRequest("spring/imageUpload.action"); 这里用的是相对路径,不知道为什么绝对路径就是不对。
可以发现如果用 相对路径的话 这里的url和action mappings定义的路径是不一样的 ,所以自己在用的时候一定要
注意!!!
分享到:
相关推荐
flex的mvc模式,是比较好的开发模式
flex puremvc例子flex puremvc例子flex puremvc例子flex puremvc例子
Spring MVC+BlazeDS+Flex框架实践
Flex+spring 框架需要的springjar包
Spring Actionscript IOC Flex Cairngorm MVC
运用flex pureMVC框架做页面构造,通过blazeDS连接flex,j2ee,后台搭建Spring3.0+Hibernate3.0作为基本框架。
PureMVC开发框架使用手册,PureMVC包含多个版本,这个文档是Flex版本 的MVC开发框架说明,
Flex PureMVC页面跳转
As puremvc 实例,代码是flex4.6平台的,找了很多资料都是以前的代码用不起来,这个是新的,没怎么用自带的组件,初学者可以看看怎么回事。
flex spring flex spring flex spring blazeds
pureMVC源码实例(flex的mvc框架)
Spring MVC+BlzeDS+Flex框架实践:HelloWorld篇 .docSpring MVC+BlzeDS+Flex框架实践:HelloWorld篇 .doc
Flex PureMVC例子 小例子 方便大家学习
Flex PureMVC Flex BlazeDS Spring Hibernate 整合 里面一些图标是包双击可查看源代码
Flex流行MVC框架之Cairngorm
flex pureMVC framework, 主要是关于 Flex 开发和 PureMVC 的一些资料和例子.
Flex Spring JAVA BLAZEDS整合,永固整合将flex与Spring整合