通过hivemind在tapestry中使用spring SpringTapestryBeanServletWeb
程序员文章站
2024-02-20 18:27:10
...
tapestry4.0中使用hivemind作为微内核,Hivemind也是一个依赖注射的容器,其
功能有一部分与spring重合,但spring 有良好的用户基础,所以使用hivemind访
问spring中定义的bean是在tapestry中集成spring的关键,这个功能可以通过一个
软件包实现,项目地址:http://sourceforge.net/projects/diaphragma/,下载
tapestry- spring.jar包,放入系统类路径,就可以在页面和组件的定义中使用
hivemind提供的注射功能访问spring中的bean定义。 hivemind.xml不需要做任何
修改,但spring容器必须通过web容器启动,web.xml中启动spring容器:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
这样spring中定义一个bean,例如
<bean id="user" class="tapestry4.pages.User">
<property name="name">
<value>jimlaren</value>
</property>
</bean>
Home.page中定义注入: <inject property="user" object="spring:user"/>
Home.html中访问:<span jwcid="@Insert" value="user.name" />
输出:jimlaren
功能有一部分与spring重合,但spring 有良好的用户基础,所以使用hivemind访
问spring中定义的bean是在tapestry中集成spring的关键,这个功能可以通过一个
软件包实现,项目地址:http://sourceforge.net/projects/diaphragma/,下载
tapestry- spring.jar包,放入系统类路径,就可以在页面和组件的定义中使用
hivemind提供的注射功能访问spring中的bean定义。 hivemind.xml不需要做任何
修改,但spring容器必须通过web容器启动,web.xml中启动spring容器:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
这样spring中定义一个bean,例如
<bean id="user" class="tapestry4.pages.User">
<property name="name">
<value>jimlaren</value>
</property>
</bean>
Home.page中定义注入: <inject property="user" object="spring:user"/>
Home.html中访问:<span jwcid="@Insert" value="user.name" />
输出:jimlaren