首页 > 编程 > JSP > 正文

标签、库完成复杂的后台处理功能的JSP示例

2019-11-02 14:35:24
字体:
来源:转载
供稿:网友

       JSTL标签是SUN带头与apache社区合作的产品,可惜从一出现就已经是一个过时的技术。SUN的软件架构师似乎缺乏从顾客角度考虑技术取向的能力,与微软相比差之千里。就标签技术而言,它的目的是令菜鸟中的菜鸟变得可以写JSP,还是令一般程序员写JSP显得更方便,更好管理?显然,SUN的那位笨蛋架构师没有想明白这个道理(越是看得多它的文档介始,越是觉得那个家伙是个大笨蛋),把SUN数千名天才工程师的才智白白浪费了。

  所有人都已经知道,JSP出现的目的就是为了让程序员更方便地写简单的servlet,复杂的多功能的servlet是不容易用JSP实现的。而JSP希望让菜鸟写java动态页面的目的并没有达到,这条,还不如ASP/PHP。在JSP中散布底层业务逻辑既不便于对象组织,也不但于代码管理,非常低效。这是发展出javaBean和标签技术的原因;而JSTL呢,它的基本客户逻辑竟然是为了帮助使用者更方便地把底层代码散布在JSP上!?包括数据库连接?!所以这东西是一个新的技术实现落后目标的产品,面对市场需求整整慢了一拍。

唯一有点价值的是它的循环逻辑,这条还是很有用的。只不过能够实现的不止它一个,struts.logic标签就是很好用的一种,而且不用指向http:/sun.xxxx/core什么的,事实上JSTL能够提供的struts:logic也能够提供。实际上struts几个标签库中也就logi,有点价值,bean也可以,其他的html是纯粹和FormBean为核心的MVC设想框架提供的。即使这样,就实用性而言,strutslib仍比sun实用得多。

  struts标签库不能很好地面向数据对象,这是它的不足,hanva标签就是为了补充这个不足。结合struts的logic库,使用hanva标签可以达到在jsp中声明和接收变量,可以实现多种逻辑,可以直接从底层获得持久性非持外性的数据对象,处理并输出——一个程序大致也就只有这些东西做的。特殊的东西再特殊处理,直接完全使用标签调用下层服务daemon程序完成绝大部分功能,已经可以做到了。

  下面的论坛示例删除程序是这样的一个功能,可以处理任何的实现了hanvaDAO接口规范的表数据的删除,包括对其相关数据记录的同步处理。它接收一个对象类型(ent),及ID,判断这个对象(行记录)是否存在,然后判断它的sourceid和id是否一致(是主贴还是跟贴),如果是主贴,就把它的从贴一起删除,否则就只删除当前贴,然后返回原来调用的一页,如果出错,就转向到errors.jsp页,显示出错信息。

<entity:present ent="${param.ent}" oid="${param.oid}" id="thent" nexto="${header.referer}">
   <%--如果记录存在就继承内嵌逻辑,把该记录定为ident名--%>
   <%--判断sourcid与id是否一致--%>
  <logic:equal name="thent" value="${thent.sourceid}" property="id">
<%--取所有主从贴,集合定名为theobjs--%>
   <entity:

霸气网名[www.la240.com/html2017/1/11/]
entities ent="${param.ent}" id="theobjs" qstr="sourceid=${sourceid}">
<%--迭代集合内容,单个取名为theobj--%>
    <logic:iterate id="theobj" name="theobjs">
<%--删除该对象--%>
     <cmd:delete ent="${param.ent}" target="${theobj}"/>
    </logic:iterate>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表