1. Home.page
==================================================
<?xml version="1.0"?>
<!DOCTYPE page-specification PUBLIC
"-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<page-specification class="org.apache.tapestry.html.BasePage"/>
====================================================
2.Home.html
====================================================
<html>
<head>
<title>Login</title>
</head>
<body>
<span jwcid="@PageLink" page="Test1">Login</span>
</body>
=============================================================
3.TapestryTest1.application //***.application:*** 一定要和包名相同,否则会出错.
=============================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<application name="TapestryTest1" engine-class="test.MyEngine">
<description>add a description</description>
<page name="Home" specification-path="Home.page"/>
</application>
=========================================================
4. applicationContext.xml
=========================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="helloBean" class="test.HelloBean">
<property name="helloWord">
<value>Hello!Justin!</value>
</property>
</bean>
</beans>
=========================================================
5.web.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>
<display-name>TapestryTest1</display-name>
<filter>
<filter-name>redirect</filter-name> <filter-class>org.apache.tapestry.RedirectFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>redirect</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>TapestryTest1</servlet-name>
<servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class> <load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class> org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>TapestryTest1</servlet-name>
<url-pattern>/app</url-pattern>
</servlet-mapping>
</web-app>
==================================================================================
好了.我们现在来做一个测试用例.测试用例的名字为:Test1
6.Test1.html
===========================================================================
<html>
<head>
<title>test1</title>
</head>
<body jwcid="@Body">
TEST1
<hr>
<form jwcid="@Form" method="get" listener="ognl:listeners.clickLinked">name:
<input type="text" jwcid="@TextField" value="ognl:hello.HelloWord" />
<input type="submit"/>
</form>
<hr/>
<span jwcid="@Insert" value="ognl:hello.HelloWord">hello</span>
</body>
</html>
============================================================
7.Test1.page
============================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<page-specification class="test.Test1">
<description>Test1</description>
<property-specification name="hello" type="test.HelloBean">
global.appContext.getBean("helloBean")
</property-specification>
</page-specification>
==========================================================================
8. HelloBean.java
==========================================================================
package test;
public class HelloBean {
private String word = "Hello!World!";
public void setHelloWord(String word)
{
this.word = word;
}
public String getHelloWord()
{
return word;
}
}
=======================================================================
9.MyEngine.java
=======================================================================
package test;
import java.util.Map;
import org.apache.tapestry.engine.BaseEngine;
import org.apache.tapestry.request.RequestContext;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class MyEngine extends BaseEngine {
protected void setupForRequest(RequestContext context) {
super.setupForRequest(context);
// insert ApplicationContext in global, if not there
Map global = (Map) getGlobal();
ApplicationContext ac = (ApplicationContext) global.get("appContext");
if (ac == null) {
ac = WebApplicationContextUtils.getWebApplicationContext(
context.getServlet().getServletContext()
);
global.put("appContext", ac);
}
}
}
============================================================================
10.Test1.java
===========================================================================
package test;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.html.BasePage;
import test.HelloBean;
public abstract class Test1 extends BasePage {
abstract public HelloBean getHello() ;
public void clickLinked(IRequestCycle cycle) {
HelloBean hello = getHello();
System.out.println(hello.getHelloWord());
}
}
==========================================================================
11.总结
=========================================================================
在写程序时,一定要注意大小写,不然会给你带来很好麻烦.
希望以上程序能对你有点帮助!!!