您的位置:首页 > 移动开发

在GAE(google appengine)中应用sitemesh

2009-04-16 13:07 429 查看
首先修改一下sitemesh中的Factory.class。参考这篇文章http://groups.google.com/group/google-appengine-java/browse_thread/thread/1e3868a6a2661585

然后将修改后的包加入到gae项目中就可以啦。

下面是我的配置文件

web.xml文件,注意红色部门直接写“*”, 不用加"/"

Xml代码

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE web-app PUBLIC

"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<filter>

<filter-name>sitemesh</filter-name>

<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>sitemesh</filter-name>

<url-pattern>*</url-pattern>

</filter-mapping>

<servlet>

<servlet-name>dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dispatcher</servlet-name>

<url-pattern>*.htm</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>

接下来在WEB-INF/下面新建一个decorators文件加,里面写个main.jsp

decorators.xml文件 注意红色字体,路径要写正确

Xml代码

<decorators defaultdir="WEB-INF/decorators">

<decorator name="main" page="main.jsp">

<pattern>/*</pattern>

</decorator>

</decorators>

<decorators defaultdir="/WEB-INF/decorators">
<decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>


main.jsp 文件,很简单。

Html代码



<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>

<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator"

prefix="decorator"%>

<%@ taglib uri="http://www.opensymphony.com/sitemesh/page" prefix="page"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title><SPAN style="COLOR: #ff0000"><decorator:title default="这里随便放什么都行" /></SPAN>main</title>

<decorator:head />

</head>

<body>

纵贯线北京演唱会

<hr>

<decorator:body />

<hr>

没有票真可惜

</body>

</html>

sitemesh.xml文件

Xml代码

<sitemesh>

<page-parsers>

<parser default="true"

class="com.opensymphony.module.sitemesh.parser.DefaultPageParser" />

<parser content-type="text/html"

class="com.opensymphony.module.sitemesh.parser.FastPageParser" />

<parser content-type="text/html;charset=UTF-8"

class="com.opensymphony.module.sitemesh.parser.FastPageParser" />

</page-parsers>

<decorator-mappers>

<mapper

class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">

<param name="config" value="/WEB-INF/decorators.xml" />

</mapper>

</decorator-mappers>

</sitemesh>

补充两个;

1 中文页面上传乱码问题可以参考这篇文章

http://www.jxva.com/blog/personal-diary/change-the-google-app-engine's-javac-compiler-encoding.html

上面无法访问的也可以看这个javaeye网友转载http://struts.javaeye.com/blog/367952

2 上传出错问题,根据我这几天上传出错的经验 下面这个错误90%以上是jsp页面错误引起的

Java代码

!MESSAGE Unable to upload app: Failed to compile java files.

See the Eclipse error log for more details

!STACK 0

com.google.appengine.tools.admin.AdminException: Unable to upload app: Failed to compile java files.

at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:47)

at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:203)

at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:97)

at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)

at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

Caused by: java.lang.RuntimeException: Failed to compile java files.

at com.google.appengine.tools.admin.Application.compileJavaFiles(Application.java:363)

at com.google.appengine.tools.admin.Application.compileJsps(Application.java:326)

at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:235)

at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:39)

... 4 more

ps 今天特地学习的sitemesh,网上一搜,99%的中文文章都是重复的,天下文章一大抄啊。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: