在我的struts 2网络应用中,网页上有几个菜单标签。这些菜单选项卡在单击时触发ajax操作。所有这些动作都来自一个动作类。此操作类将请求路由到帮助程序类。辅助类有一个方法:
如果action = this,请执行此操作
如果action = that,那就这样做
等......每个动作(即每个标签)。
有人可以提供有关此设计的评论......这是正确使用struts 2吗?或者我们应该有单独的行动类?
另外,帮助程序类的任何标准实践?(即它应该是静态的,单例,线程安全等)。
答案 0 :(得分:1)
几点想法:
使用Action类处理多个struts2动作没有错; struts2允许您将特定操作路由到类的方法。如果类本身是一个有用的组织设备,这可能会有所帮助。例如,您可能有一个想要创建,读取,更新等的Widget,而不是具有CreateWidgetAction,ReadWidgetAction等类的一组类,这些类会导致很多混乱,只需要一个WidgetAction类就可以了。上面有create(),update()等方法。考虑到你描述的内容(不同的菜单选项卡),我猜你的情况不太合适,但你当然可以做到。维护代码时要查看的文件较少。
请注意,您需要将不同的操作映射到这些不同的方法以及呈现结果的不同JSP。
关于助手类,我的建议是将视图+控制器相关的逻辑放在Action类中,但将模型逻辑留在其他类(可能是你的助手类)中。如果您的助手类是独立于演示的计算数据,那么这当然是合法的。但是如果你的助手类只是准备一个视图,那就把逻辑放在Action本身。