skip to main |skip to sidebar

2007-05-06

Flex2 Tag for JSP

以前在Adobe lab发布了一个Flex Tag Library for JSP的东西,但好像关注的人很少。所以我向大家介绍一下。

使用JSP Tag Library就能在JSP里镶入MXML。这个功能虽包含在flex1.x里,但flex2却没包含。

安装方法:

  1. 停止FDS(它需要FDS 2.0.1,Express版可)。
  2. 下载 (flex2_tag_library_for_jsp.zip: 31KB)。
  3. 把下载的zip文件里的flex-bootstrap-jsp.jar拷贝到/WEB-INF/lib。
  4. 把下载的zip文件里的flex-webtier-jsp.jar拷贝到/WEB-INF/flex/jars。
  5. 在web.xml文件添加以下内容。
    Code:XML
    <taglib>
      <taglib-uri>FlexTagLib</taglib-uri>
      <taglib-location>/WEB-INF/lib/flex-bootstrap-jsp.jar</taglib-location>
    </taglib>
  6. 重启动FDS。

使用方法:

标签的声明:

Code:jsp
<%@ taglib uri="FlexTagLib" prefix="mm" %>

镶入MXML,类似于jsp:include,但它包含的不是jsp,是MXML:

Code:jsp
<mm:mxml source="flexApp.mxml"/>

在jsp里插入MXML代码:

Code:jsp
<mm:mxml>
  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*">
    <mx:Text text="Hello World" />
  </mx:Application>
</mm:mxml>

还可以动态地编译代码: *因为他不能缓存,所以对开销很大,要注意。

Code:jsp
<mm:mxml>
  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*">
    <% if (request.isUserInRole("admin")) { %>
      <AdminConsole/>
    <% } else { %>
      <UserConsole/>
    <% } %>
  </mx:Application>
</mm:mxml>

往flex程序里传参数:

Code:jsp
<mm:mxml source="flashvarTest.mxml" width="400" height="200">
  <mm:flashvar name="javaVersion" value='<%= System.getProperty("java.version") %>' />
  <mm:flashvar name="currentDate" value="<%= new java.util.Date().toString() %>"/>
</mm:mxml>

这里向flashvarTest传了javaVersioncurrentDate两个参数。在flex程序里用Application.application.parameters.valueName的形式来访问。

Sample:

Code:jsp
<%@ taglib uri="FlexTagLib" prefix="mm" %>
<mm:mxml height="300" width="600">
  <mm:flashvar name="javaVersion" value='<%= System.getProperty("java.version") %>' />
  <mm:flashvar name="currentDate" value="<%= new java.util.Date().toString() %>"/>
  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" >
    <mx:VBox>
      <mx:HBox>
        <mx:Label text="Java version: "/>
        <mx:Label text="{Application.application.parameters.javaVersion}" fontWeight="bold"/>
      </mx:HBox>
      <mx:HBox>
        <mx:Label text="Current Time: "/>
        <mx:Label text="{Application.application.parameters.currentDate}" fontWeight="bold"/>
      </mx:HBox>
    </mx:VBox>
  </mx:Application>
</mm:mxml>

没有评论: