设备发出处理请求---->经过控制器转发--->由业务逻辑处理

解决方案 »

  1.   

    由actionbean调用相应的业务逻辑。
      

  2.   

    你说的轮询的逻辑和structs并没有什么关系,其实你说的这几个功能都和structs无任何关系。如果你要做的话,在servlet的listener中写一个TimerTask,来执行轮询就成了。(具体的方法是在初始化的时候init一个TimerTask,来定时执行轮询任务)至于你说的配置方面,实际上就是用户将配置写入一个文件或者数据库某个表中,然后你做的TimerTask去定时读那个数据库就成了,这部分功能并不需要在页面上显示。如果你想在页面上定时显示最终的处理结果,那么可以在页面上用javascript来做定时,或者用html的定时刷新功能。(如果是无刷新显示,即不是整个页面刷新,你可以用js+xmlhttp来实现,或者直接用js+xml也行,这就需要你去了解一下xml相关的东西了)感觉楼主没明白structs的真正含义,实际上它只负责表现层与业务逻辑层的交互,只起到一个控制器的作用,至于具体的业务逻辑以及更向下一层的持久层(和数据库交互),根本就和structs没有一点关系。也正是这样,才体现了java分层设计的好处。
      

  3.   

    >设备发出处理请求---->经过控制器转发--->由业务逻辑处理
    设备发出的请求通过自身的协议,而控制器是不是转发的还是用户HTTP请求?To:mxlmwl
    我所描述的这块东西跟STRUTS可能确实脱离了。但,我更多的基于了APPFUSE的前提,它集成了HIBERNATE+STRUTS。
    但,你也看到我描述的东东,虽然除了需要有自己的Timer和线程进行额外的“输入”,其它的地方和STRUTS里的业务响应非常像:也需要能够接受来自控制器分发的用户请求;也需要象APPFUSE里集成了HIBERNATE的ACTIONFORM去访问数据库。
    而,我就是不知道如何把这块“额外的输入”运行在哪里?你所说的
    >在servlet的listener中写一个TimerTask
    是否可以达到这种与一般业务处理的统一?我初搞这一块,还请指教!BTW:
    其实,我觉得我这个问题更像是这样:把一个以前普通的网络应用程序,转换为界面(BROWSER)、服务器分离的BS结构,但同时还要响应其管理的设备。
    不知道以下这篇文章是否跟我说的这个问题有关联:
    http://www-128.ibm.com/developerworks/cn/webservices/ws-arcstruts/index.html
      

  4.   

    appfuse没啥出色的玩意,还不如不用。
    要看你想实现的功能是什么样子的啊,如果你要设计到表现层技术的话,那么可以用structs,如果你的程序准备在后台运行,根本不需要用structs的啊。实际上是这个样子,根据你的要求,那么实际上总结出的模型应该是这个样子
    ?-业务层(存放业务逻辑)-持久层(与数据库打交道)那么这个?,如果你以web访问,就可以用structs,webwork...,否则,你就去别的技术实现好了啊。比如后台操作,就用一个Task来调用业务层逻辑就行了,其他的就根据你的需要去替换?就行了。至于TimerTask,如果你想要更大功能的话,建议你使用quartz就是了。你说的这个地址实际上就是一个structs的介绍啊,没感觉有什么太多本质的东西。>设备发出处理请求---->经过控制器转发--->由业务逻辑处理
    你的意思我有点糊涂了,你说的“设备发出处理请求”来自何处,如何发出来呢,是通过web吗??如果不是的话,你就没办法用structs了啊?structs和web容器捆绑的非常死的,不过webwork倒是可以考虑一下。
      

  5.   

    另外,楼主可能是了解的不太清楚。
    因为
    表现层--业务层--持久层这个最基本的模型,structs主要负责表现层,而你的题目“如何将自己的应用逻辑集成进STRUTS呢? ”,如何集成,就是在structs的action中引用业务逻辑。而如果你的程序与web展现无关,那么就是说和action一点都贴不上边,那你就用不到structs了。
      

  6.   

    >那么这个?,如果你以web访问,就可以用structs,webwork...,否则,你就去别的技术实现好了啊。>比如后台操作,就用一个Task来调用业务层逻辑就行了,其他的就根据你的需要去替换?就行了。
    >至于TimerTask,如果你想要更大功能的话,建议你使用quartz就是了。
    与用户交互所有界面都会使用WEB,所以肯定有表现层的东西.但也需要执行后台的操作去响应设备请求(设备就是我所管理的网络设备)----所以我的问题一直是:如何将STRUTS和我的这种后台操作结合起来,换句话说就是,我在STRUTS架构的什么地方启动我的后台线程,以运行我的这部分逻辑.至于APPFUSE,减少了
      

  7.   

    呵呵,楼主没用过servlet的init()方法或者是listener(可继承ServletContextListener来做)吗?或者是用structs的plugin写一个插件来运行这个任务就是了。
    具体的方法请参考servlet相关知识或者是structs的plugin。我就不举例子了。楼主目前的分层结构还不是很清晰,这方面的知识再补充一下。因为我感觉你总认为所有东西都是围着structs转,可能是刚开始学的缘故吧。
      

  8.   

    不错的帖!
    个人想法:
    楼主可以分2块:
    1、用structs来表现客户的用户界面与后台的交互!2、通过楼上说的,用listener或者structs的plugin,如果jsp版本低,用serlvet直接加载的方法启动你所期待的其他后台逻辑!
      

  9.   

    struts基于以下几个技术:
    HTTP,servlet,JSP。
    如果脱离这几个技术,就用不着struts。