Tapstry+Spring的结合实例

类别:Java 点击:0 评论:0 推荐:

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.总结
=========================================================================
在写程序时,一定要注意大小写,不然会给你带来很好麻烦.
希望以上程序能对你有点帮助!!!

 

 

 

 

 

本文地址:http://com.8s8s.com/it/it11150.htm