`
guoyiqi
  • 浏览: 968854 次
社区版块
存档分类
最新评论

Openlaslzo 运行环境与 struts 框架整合配置

阅读更多

Openlaslzo 运行环境与 struts 框架整合配置
 
 
1. 下载openlaszlo3.3.3 的servlet版:http://www.openlaszlo.org/download#stable
 
下载后是个 war 包,叫 openlaszlo-3.3.3-servlet.war
 
2. 安装到 tomcat容器中
将此文件放到 tomcat 的 webapps 下面,启动 tomcat(如果已经启动,先停止)。等 tomcat
启动后,就会发现 webapps 下面多了个文件夹叫 openlaszlo-3.3.3-servlet,这就是可以运行 lzx
文件的 openlaszlo 应用了。
 
3. 运行第一个 lzx 文件
在浏览器中键入:
http://localhost:8080/openlaszlo-3.3.3-servlet/my-apps/copy-of-hello.lzx?lzt=html
 
稍等就看到 hello Laszlo 的文字了,这说明 openlaslzo 应用环境已经建立好了。在页面上右
击就能看到 flash 的菜单,说明这是 flash 文件。在openlaszlo-3.3.3-servlet/my-apps下能看到
copy-of-hello.lzx 文件,这就是产生这个文字的文件。
 
4. 将 openlaslzo 的编译环境迁移到 struts 中
打开 openlaszlo-3.3.3-servlet 文件夹,里面有两个重要的文件夹:
 
Lps 是 laszlo应用的标准组件库,而 WEB-INF文件夹是编译服务器所在的目录。
 
第一步:拷贝标准组件包
将当前这个 lps 文件夹拷贝到你的 struts 应用上下文的目录里,比如你在 webapps 下面有个
struts-blank 目录,就将 lps 文件夹直接拷贝到 struts-blank 中去;
 
第二步:拷贝 WEB-INF 中的 jar包文件和 lps 服务器
返回 openlaslzo-3.3.3-servlet 文件夹,进入 WEB-INF文件夹中,有三个重要部分:

 
一个是 Lib文件夹,这个文件夹中的 jar包要全部拷贝到你的 lib 文件夹下去,如果有重复的
不要覆盖掉;
另一个是 lps,它和外面的 lps 是不一样的,要拷到你的 WEB-INF下面;
最后一个是 web.xml 文件,用 xml 编辑器打开,里面的结构如下:
 
<!DOCTYPE web-app
   PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
   "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
 
<web-app>
<!-- * X_LZ_COPYRIGHT_BEGIN
***************************************************
* Copyright 2001-2005 Laszlo Systems, Inc.  All Rights Reserved.             
*
* Use is subject to license terms.                                           
*
* X_LZ_COPYRIGHT_END
****************************************************** -->
 
   <display-name>OpenLaszlo Server</display-name>
   <description/>
 
   <servlet>
       <servlet-name>LPS</servlet-name>
       <servlet-class>org.openlaszlo.servlets.LZServlet</servlet-class>
   </servlet>
 
   <servlet>
       <servlet-name>LZViewer</servlet-name>
       <servlet-class>org.openlaszlo.servlets.LZViewer</servlet-class>
   </servlet>
 
   <servlet>
       <servlet-name>AuthenticationServlet</servlet-name>
       <servlet-class>AuthenticationServlet</servlet-class>
   </servlet>
 
   <servlet>
     <servlet-name>AxisServlet</servlet-name>

     <servlet-class>
         org.apache.axis.transport.http.AxisServlet
     </servlet-class>
   </servlet>
 
   <servlet-mapping>
       <servlet-name>LPS</servlet-name>
       <url-pattern>*.lzx</url-pattern>
   </servlet-mapping>
 
   <servlet-mapping>
       <servlet-name>LPS</servlet-name>
       <url-pattern>*.lzo</url-pattern>
   </servlet-mapping>
 
   <servlet-mapping>
       <servlet-name>LZViewer</servlet-name>
       <url-pattern>/LZViewer</url-pattern>
   </servlet-mapping>
 
   <servlet-mapping>
       <servlet-name>AuthenticationServlet</servlet-name>
       <url-pattern>/AuthenticationServlet</url-pattern>
   </servlet-mapping>
 
   <servlet-mapping>
     <servlet-name>AxisServlet</servlet-name>
     <url-pattern>*.jws</url-pattern>
   </servlet-mapping>
 
   <welcome-file-list>
       <welcome-file>index.jsp</welcome-file>
       <welcome-file>index.html</welcome-file>
   </welcome-file-list>
</web-app>
 
第三步:拷贝 servlet 定义与映射内容
打开你的 web.xml 文件,将前面打开的 web.xml 文件中的第 16 行到第 36 行,拷贝到你的
web.xml 文件中的 servlet定义区中,然后删除 AuthenticationServlet 定义,当然也可以
不删除,但是需要额外的从 classes 中拷 AuthenticationServlet.class,比较麻烦,
所以就省略了;
再拷贝web.xml 文件中的38到61行,到你的servlet-mapping 定义区中,相应的
把 53 到 56 注释掉,你的 web.xml 中应该有 welcome-file-list 了,所以就不用拷
了。

 
保存你的web.xml 文件,这样你的 laslzo-struts环境就配好了,可以做测试了。
5. 测试 laslzo-struts配置正确
将 openlaszlo-3.3.3-servlet 中的 my-apps 目录拷到 struts-blank 中,重启 tomcat,
在浏览器中键入:
http://localhost:8080/struts-blank/my-apps/copy-of-hello.lzx?lzt=html
如果出现和第一次请求浏览器时一样的结果,hello Laszlo 文字,那么表示 struts 与
laslzo 整合成功了。
 
6. 建立第一个 struts-laslzo 应用
建立一个 action 的类,名叫 WelcomeAction 类包路径:
com.laszlo.demo.LaszloDispatchAction
写一个 action的方法:
public ActionForward welcomeFeedback(ActionMapping mapping, ActionForm actionForm,
HttpServletRequest request, HttpServletResponse response)throws Exception{
        String userName = request.getParameter("userName");
        String feedBackInfo = "welcome to laslzo:"+userName;
        request.setAttribute("result","<root info=\""+feedBackInfo+"\">");
        return mapping.findForward("loginSuccess");
    }
写 helloStruts.lzx代码放在 my-apps下面:
<canvas debug="true" fontsize="12">
 <dataset name="welcomedata" src="WelcomeAction.do" type="http"
request="false"/>
  <datapointer name="welcompt" xpath="welcomedata:/*">   
   <method event="ondata"><![CDATA[
       var info = this.xpathQuery('@info');
           Debug.write(info);                      
       ]]></method>
  </datapointer>
 <edittext name="getWelcome" x="10" y="10" width="100"/>
 <button name="sendRequest" x="10" y="40" width="40">
   <handler name="onclick">
       welcomedata.setQueryParam('method','welcomeFeedback');
       welcomedata.setQueryParam('userName',parent.getWelcome.getText());  
       welcomedata.doRequest();  
       Debug.write(“loading…”);
   </handler>   
 </button>  
</canvas>
在 struts-config.xml 中写 action定义
<action   path="/my-apps/welcomeAction"
         type="com.laszlo.demo.LaszloDispatchAction"
         scope="request"

         validate="false"
         parameter="method" >
 <forward name="loginSuccess"  path="/my-apps/jspdispatchaction.jsp"></forward>
 </action> 
最后写 jspdispatchaction.jsp
<%@ page contentType="text/xml;charset=UTF-8"    language="java" %>
<%
    String kpiTreeResult = (String) request.getAttribute("result");
    out.println(kpiTreeResult);    
%>
编译 action,重起 tomcat
在浏览器访问:
http://localhost:8080/struts-blank/my-apps/helloStruts.lzx?lzt=html
输入名字,点击按钮提交,如果在调试窗口出现问候 welcome to laslzo:yourname,就表示成
功了。
 
7. 注意事项
Openlaslzo 编码使用 unicode 编码,所以在 tomcat 中,要在 connector 中设定
URIEncoding="UTF-8",而且java 的编码最好用utf-8统一编码;
在weblogic 中,也会出现乱码,最好将前台转过来的字符(utf-8)做一下转码。
 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics