1 页面上通过url触发,比如<a href="credit_createCreditUI.action" >触发</a>
分析这个url,可以看出,触发的功能代码是:在xxxStruts.xml配置里面<action name="credit_*" class="creditAction" method="{1}">对应的处理类class="creditAction"当然这个由spring来管理,查看xxxBeans.xml可以看到具体是那个类。那么遇到这种触发,就知道,这个请求是进入到类creditAction里面的createCreditUI这个方法来处理的,我们看下这个方法
2
public final String createCreditUI()
{
log.info("创建贷方传票页面");
log.warn(LogTool.userLog() + "进入贷方传票页面。");
return "createCreditUI";
}
可以看到这个类只是简单做一个地址跳转,跳转到真正处理这个贷方传票的页面return "createCreditUI";去。这里又涉及到了ssh中struts2的配置,我们在它的struts.xml配置文件看下
3
<struts>
<package name="credit" namespace="/" extends="main">
<!-- 资料导出 -->
<action name="credit_*" class="creditAction" method="{1}">
<!-- 登录超时和Session权限的拦截器栈 -->
<interceptor-ref name="sessionTimeOutStack" />
<result name="timeout">/timeout.jsp</result>
<result name="createCreditUI">/WEB-INF/report/credit_summons_UI.jsp</result>
<result name="checkCredit">/WEB-INF/report/credit_summons_print.jsp</result>
<result name="test">/WEB-INF/report/credit_summons_print_all.jsp</result>
<result name="error">/WEB-INF/merchant/ajaxDone.jsp</result>
<result name="success">/WEB-INF/merchant/ajaxDone.jsp</result>
</action>
</package>
</struts>
这样,一个由页面触发,到action类处理跳转的流程就完成了。如果涉及到具体的功能处理或计算,也是写在action类里面相应的方法里,然后封装好需要的bean或处理好相应的sql,最后跳转而已。
如果涉及到具体功能方法,比如数据库操作,由于本项目用spring管理,所以需要注入spring这个处理方法,做法是:
在Action中先注入
/**
* 注入接口实例.
*/
@Resource
private CreditService creditService;
那么CreditService 这个其实就是 interface CreditService 接口类,当然还需要有个impl来具体实现这个接口。用它也就是在Action中:
creditService.queryDateCredit(startDateTest, endDateTest, bankFlagTest, merchantFlag);
这样就行了
本文介绍了一个具体的Struts2与Spring集成案例,详细解释了如何通过URL触发Struts2 Action,以及如何利用Spring管理业务逻辑。此外,还展示了如何在Action类中注入Spring服务进行数据库操作。
2987

被折叠的 条评论
为什么被折叠?



