`

Structs学习心得

阅读更多
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中调用相应的业务逻辑处理,只需一个简单的连接并附上请求的方法参数。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics