session的生命周期是整个会话过程,而Request的生命周期仅仅是一个请求周期,请求被处理后便自动消失。
<logic:present name="cateList">
<logic:iterate id="cate" name="cateList" type="com.ORM.Category">
<option value="${cate.id}">${cate.cateName}</option>
</logic:iterate>
</logic:present>//很有用处把业务处理的结果与展示层需要的结果无缝的合为一体
function QuickSearch(){
var url = "mer.do?method=searchMer&cateid="+document.all.category.value;
var key = document.all.qKey.value;
if (key !=null && key!="商品关键字" && key.length>0)url = url+"&key="+key;
window.location = url;//javascript中的页面跳转方法。业务逻辑中的跳转方法:forward = new ActionForward("/mer.do?method=browseIndexMer");
或者:return mapping.findForward("index");又或者:return mapping.findForward("index");
}。
Structs工作流程:
展示层即.JSP文件可以有两种方法通过向AvtionServlet发送请求调用需要的业务逻辑第一次主要是Action类,然后Action类在根据具体情况调用第二层的业务逻辑即Bean对象
。一种是:JSP文件通过表单的提交启动业务逻辑处理,另一种是直接通过<A href="mem.do?method=browseWord"></a>这种形式的链接完成启动相应的业务逻辑的。不过还可以
运用JavaScript方法完成相同的目的比如:function QuickSearch(){
var url = "mer.do?method=searchMer&cateid="+document.all.category.value;
var key = document.all.qKey.value;
if (key !=null && key!="商品关键字" && key.length>0)url = url+"&key="+key;
window.location = url;//javascript中的页面跳转方法。业务逻辑中的跳转方法:forward = new ActionForward("/mer.do?method=browseIndexMer");
或者:return mapping.findForward("index");又或者:return mapping.findForward("index");
}。
业务逻辑(Action类)会把最终处理的结果返回给需要那些结果的JSP文件,这里就涉及到JSP文件与Action类处理结果直接的通信。我发现使用Structs标签<logic:Present>
特别有效。不过前提是你在业务逻辑中先把处理的结果存储到Request或者session中,然后你使用标签就可以自动的获得你自己需要的结果。比如:
<logic:present name="cateList">
<logic:iterate id="cate" name="cateList" type="com.ORM.Category">
<option value="${cate.id}">${cate.cateName}</option>
</logic:iterate>
</logic:present>//很有用处把业务处理的结果与展示层需要的结果无缝的合为一体
当然在对应的Action类中我写了如下语句:cateList = service.browseCategory();//Action类中调用业务逻辑Bean。
if (cateList!=null)request.setAttribute("cateList", cateList);你也可以把它放到session中。不过这里不需要因为这里只是一个请求。
从上面这些可以看出:Structs的确很好!它干净利落的把业务逻辑与展示层以及控制器彻底分开!其中业务逻辑可以只有Action类,但是你不仅可以在Action类中扩展自己的业务逻辑
代码,还可以另外自己创建另一种业务逻辑即Bean,这一点特别好,这样更有利于业务逻辑代码的维护和升级。
另外一点我觉的DispatchAction类很好,因为它可以允许我们已方法参数的形式在JSP中调用相应的业务逻辑处理,只需一个简单的连接并附上请求的方法参数。
分享到:
相关推荐
struts 学习心得
struts2学习心得,总结了struts2的常用方法,经验
本人在平时J2EE的学习过程中的一些心得体会
初学者的眼光看世界。 Struts2和Struts1差不多。
Struts2 与 struts1 的对比 控制器类: Struts2的控制器不像struts1的那样了 它就是一个简单的pojo 里面包含封装用户的请求参数
struts的精髓都在这个里面,希望大家好好学习 ,这个都是本人学习struts的心得,大家好好学习
struts\Hibernate 学习总结.doc
Struts2输入校验总结 Struts2输入校验
Struts2学习笔记。分享学习心得体会。
struts2的所有学习心得,供大家学习
Struts2的“零配置”特性是Struts2的新功能,可能会出现一些小Bug,所以企业开发者请慎重使用该特性, Struts2的“零配置”特性由struts2-codebehind-plugin-2.1.2.jar插件支持,使用时记得将其拷入WEB-INF/lib下; ...
一个简单的spring+struts+ibatis整合的实例,实现了用户登录,用户登录成功则显示欢迎信息,失败则显示用户名或密码错误,该实例非常简单基础,特别适合新人学习,工程包含了必要的资源包,部署到服务器中及可运行,...
struts使用心得,对于入门的同学有很大帮助。
Spring和Struts框架学习总结
关于 struts 实验时的一些总结,这些总结是我 流着汗水一个一个总结出来的,希望能帮到更多的人在学习struts2是少些忧愁....
关于struts的心得,描述了学习struts学习中的一些关键点。