您的位置:首页 > 编程语言 > Java开发

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

2012-02-12 19:37 441 查看
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)做一下转码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: