使用 Felix 和 Struts2 开发 Web 应用
2010-07-13 00:00:00 来源:WEB开发网为了实现用户交互,还需要创建一个获取时间消息响应的 action。该 Action 的 execute() 方法代码如清单 7 所示。
清单 7. Action 实现方法
public String execute(){
ServiceReference ref = bundleContext.getServiceReference(
TimeService.class.getName());
TimeService timeService = (TimeService) bundleContext.getService(ref);
timeMessage = timeService.getTime();
return SUCCESS;
}
这个 Web bundle 中独立的建立一个 struts.xml,这个 struts.xml 将会为单独加载,需要注意的是 Struts 的 pacakge 继承 osgi-default 这个包,osgi-default 已在 struts2-osgi-plugin 这个 jar 包里面定义。
清单 8. Web Bundle struts.xml 的 action 定义
<struts>
<package name="time-example" namespace="/time" extends="osgi-default">
<action name="time" class="com.example.time.web.action.TimeAction">
<result type="freemarker">time.ftl</result>
</action>
</package>
</struts>
打包部署
将开发好的四个 bundle 导出成 plugin 的包,并将它们放在 Web App 工程中 ,bundles 的目录结构如图 4 所示。
图 4. Web Application 中的 bundles 目录结构
更多精彩
赞助商链接