初学apache Click遇到困难,请高手帮忙,谢谢!

java_8dc 2010-07-10 11:45:10
大家好,不知道大家有没有听说过 apache Click 开源框架,这个框架目前小有名气。
先帮apache Click做个广告: http://www.avoka.com/click-examples/home.htm
小弟刚学这个框架就遇到了一些困难,特来请各位牛人帮忙,谢谢!

我学着apache Click的入门教程做了一个简单的HelloWorld示例, 现在把详细过程写出来,请大家帮我看看到底什么地方出了问题,为什么我的HelloWorld运行不成功。
开始ing...

1. 首先我下载了apache Click的jar包,网址http://click.apache.org,click-2.2.0.zip

2. 在MyEclipse中新建了一个Web工程,名为HelloWorldClick

3. 我解压click-2.2.0.zip包之后,进入click-2.2.0\dist目录下,把click-2.2.0.jar、click-extras-2.2.0.jar、click-mock-2.2.0.jar、click-nodeps-2.2.0.jar这四个jar包全部导入进HelloWorldClick工程中

4. 在HelloWorldClick工程src下建了一个类, 这个类在com.example.myfirstclick.pages包下:


package com.example.myfirstclick.pages;
import org.apache.click.Page;

public class WelcomePage extends Page {
protected String theMessage = "Welcome!";
public WelcomePage() {
System.out.println("enter");
addModel("message", theMessage);
}
}



5. 修改 WEB-INF/web.xml 文件:


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">

<display-name>HelloWorldClick</display-name>

<servlet>
<servlet-name>ClickServlet</servlet-name>
<servlet-class>org.apache.click.ClickServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ClickServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>welcome.html</welcome-file>
</welcome-file-list>
</web-app>



6. 在WEB-INF目录下新建一个名为click.xml的文件, 该文件与web.xml处于同一目录下, 并在click.xml文件中输入以下内容:


<?xml version="1.0" encoding="UTF-8"?>
<click-app>
<pages package="com.example.myfirstclick.pages" />
</click-app>



7. 删除系统产生的index.jsp文件,并新建一个welcome.html文件,输入以下内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>MyFirstClick Welcome</title>
</head>
<body>
$message
</body>
</html>


8. 将此项目布署到Tomcat6.0服务器,布署成功,服务器运行正常

9. 我在IE下输入以下链接:
http://127.0.0.1:8080/HelloWorldClick/welcome.html

如果运行正常的话,网页上应该显示 Welcome!
可是我的IE结果却显示 $message

很遗憾,我这个apache Click入门示例不成功,但我检查了很久都没发现原因,希望各位帮我查查看什么环节出错了,谢谢大家!

...全文
283 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolkai 2011-07-23
  • 打赏
  • 举报
回复
有帮助顶下
frankmanzhu 2011-05-24
  • 打赏
  • 举报
回复
用htm后缀

我刚想回答。。。就有人抢掉了。。。。

Hisea 2010-12-21
  • 打赏
  • 举报
回复
当click的html显示$message的时候,代表这个时候message是null,
具体到你的问题,是因为message这个object没有bind到html.
建议在声明message的时候,加上@Bindable注释。
java_8dc 2010-07-11
  • 打赏
  • 举报
回复
十分感谢楼上大哥的帮忙!!谢谢!
book_i_robot 2010-07-11
  • 打赏
  • 举报
回复
<web-app>
<servlet>
<servlet-name>ClickServlet</servlet-name>
<servlet-class>org.apache.click.ClickServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ClickServlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
</web-app>

By convention all Click page templates should have an .htm extension, and the ClickServlet should be mapped to
process all *.htm URL requests. With this convention you have all the static HTML pages use an .html extension and
they will not be processed as Click pages.

因为click约定页面的模板文件扩展名必须是htm,而不是html。只有当你请求模板文件时,click servlet 才能做进一步的渲染处理。

如你所配置,当请求welcome.html时,click servlet虽然接收到到该请求,但只是将该文件作为普通的静态文件,未作渲染,直接输出。



simaa0106 2010-07-10
  • 打赏
  • 举报
回复
没接触过。帮顶下

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧