pe框架自定义jsp标签

Posted liwanxing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pe框架自定义jsp标签相关的知识,希望对你有一定的参考价值。

以最常见的获取账号列表为例子:

  

  引入标签,prefix可以理解成别名,或者对象,使用时类似对象.成员。

<%@ taglib prefix="pe" uri="/WEB-INF/tlds/powerengine2.tld"%>

 

  这里可以理解成jsp中的k/v,通过tld中的k映射到java中属性值。也可以理解成声明,因为牵涉到jsp到java数据的流动,还是kv好些。

<tr align="left" valign="middle" id="localbank">
<td height="23" nowrap class="tdTitle">原绑定卡号/账号</td>
<td align="left" nowrap class="tdValue" colspan="4" onchange="selectAcNo(this.value)"><select
name="AcNoAlias" onChange="selectAcNo(this.value)">
<pe:optionEx listResolverId="AcACList" input="AcNo"
optionName="id,aliasName,bankAcType,name"
constantPrefix=",,BankAcType,"
optionValue="id,type,bankAcType,currency.id,currency.type,currency.id,name,currency.type"
valuePrefix=",,,Currency,CRFlag,," currentValue="${AcNo}" />
</select></td>


</tr>

 

  标签的理解百度即可,入门级这里写业务逻辑,一般这里当做xml解耦

<tag>
        <name>optionEx</name>
        <tag-class>com.csii.pe.channel.http.tag.OptionExTag</tag-class>
        <body-content>empty</body-content>
        <attribute>
            <name>listResolverId</name>
        </attribute>
。。。。。。。。。。

 


  OptionExTag.class接口多态机制,接口的引用指向实例化对象,该出实例化是在mergedPool池中获取的。
listResolverId是注入的beanid,一般spring都是注入和getbeanid两步骤。
resolver对象是实例<bean name="AcACList" class="com.csii.ibs.accesscontrol.AcAccessControlListResolver" >
 List items = null;
        ListResolver resolver = mergedPool.getListResolver(this.listResolverId);
        if (resolver != null) {
            items = resolver.getList(context, inputData, extraData, this.defaultRuleDef);
        }

 

  resolver.getList();还是获取的user

  public List getList(Context paramContext, Object paramObject1, Object paramObject2, String paramString)
  {
    IbsUser localIbsUser = (IbsUser)paramContext.getUser();

 

  其实账户管理中的账号列表都是直接拿user数据了。例如

<pe:option items="${_USER.accounts}"
                            optionName="id,bankAcType,name"
                            constantPrefix=",BankAcType"
                               optionValue="id,type,bankAcType,currency.id,currency.type,currency.id"
                            valuePrefix=",,,Currency,CRFlag"
                            currentValue="${AcNo}"
                            condition= "1D".indexOf(type)!=-1 and subCifNo==null/>

 

  题外话谈下el表达式,el仅仅是一种简化形式,例如pagecontext.request...等等,mvc将数据分离后,只要数据流到了view层,el都能表示的,常见的context只是一种常用的获取方式,适配器把传递参数都封与此,user也常用,是首次登陆拿的puser和paccount表数据。

 













以上是关于pe框架自定义jsp标签的主要内容,如果未能解决你的问题,请参考以下文章

jsp的标签库和自定义标签

JSP回顾

jstl标签库基础教程及其使用代码

JSP自定义tag控件标签

jsp自定义标签

[Java] JSP笔记 - 自定义标签