字典表——自定义标签的实现(主要代码在Tag目录下)

字典表——自定义标签的实现(主要代码在Tag目录下)

1. 配置项目的.tld文件(gdmt.tld)
在这里插入图片描述

目录:/gdmt/src/main/webapps/WEB_INF/

2. 数据库中的字典表
在这里插入图片描述
其中,pt_dictionary表为字典表;pt_dictionary_i18n表为字典表的国际化表

3. 字典表自定义标签的实现类(dctnrTag.java,继承了自定义标签的简单实现类SimpleTagSupport)
定义字典表配置文件中定义的几个属性,以及对应的get()和set()方法,主要是重写dotag()方法,调用dcnrService类的方法来查询数据字典表信息返回到list列表,实现对自定义标签的内容输出(其中的out对象用于输出标签),输出前必须判断属性是否存在,存在才输出。

4. service类(DctnrService.java)

定义一个通过group来查询数据库里的字典表返回到list列表里的方法

5. serviceImpl实现类(DctnrServiceImpl.java)
在实现类里增加方法来返回查询的结果

6. 建一个接口(DctnrDao.java)

7. 字典表的实体类(PtDictionary1entity.java)

8. 自定义标签查询字典表的sql语句:
在这里插入图片描述

<select id="queryDicCodeListByeGroup" resultType="com.isoftstone.platform.model.entity.PtDictionary1entity">
select dic.code,i18n.dict_name from pt_dictionary dic 
left join pt_dictionary_i18n i18n on dic.dict_id = i18n.dict_id 
where dict_group =#{group}
and i18n.language_id =(select language_id from sm_language where code = #{lang})
ORDER BY dic.sort
</select>

注:其中id为方法名,resultType写实体类的全路径

9. 自定义标签的调用
首先在common.jsp文件的首部引用tld文件的uri内容:
在这里插入图片描述

字典表自定义标签调用:(在任何一个jsp页面中引用时调用这行代码即可,其中group是必须写的属性,且值为字典表中的group字段的内容)

<g:dicselect id="test1"  classez="test2"  name="test3"  group="organ.type"/>

数据库表——自定义标签的实现

1. 配置项目的.tld文件(gdmt.tld)—在字典表的自定义配置的基础上增加数据标签的配置

目录:/gdmt/src/main/webapps/WEB_INF/

2. 数据库中的字典表(此部分不用字典表)——直接使用数据库表信息

3. 数据自定义标签的实现类(DataSelectTag.java,继承了自定义标签的简单实现类SimpleTagSupport)——基本实现和字典表的实现一样
定义字典表配置文件中定义的几个属性,以及对应的get()和set()方法,主要是重写dotag()方法,调用dcnrService类的方法来查询数据字典表信息返回到list列表,实现对自定义标签的内容输出(其中的out对象用于输出标签),输出前必须判断属性是否存在,存在才输出。

4. service类(DataSelectService.java)
定义一个查询数据库里的任意一张表返回到list列表里的方法

5. 具体的service实现在每个模块的service和controller的对应类中实现
在实现类里增加方法来返回查询的结果

6. 数据表的实体类:
(/gdmt/src/main/java/com/isoftstone/gdmt/tag/entity/SelectTagEntity.java)

7. 自定义标签查询字典表的sql语句:

<select id="queryTagElementList" resultType="com.isoftstone.gdmt.tag.entity.SelectTagEntity">
    select d.DEP_UUID as code,
	d.BRANCH_NAME as dictName from pt_department d
	</select>

注:其中id为方法名,resultType写实体类的全路径

8. 自定义标签的调用
首先在common.jsp文件的首部引用tld文件的uri内容:
在这里插入图片描述
字典表自定义标签调用:(在任何一个jsp页面中引用时调用这行代码即可,其中serviceObj是必须写的属性,且值为下图所示2位置传过来的值:
在这里插入图片描述
<g:dataselect id=“searhAgencyId” name=“agencyId” style=“width:245px” serviceObj=“departService”/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现公共底部的效果,你可以使用JSP的自定义标签库。下面是实现的详细步骤: 步骤一:创建自定义标签处理类 1. 创建一个Java类,作为自定义标签的处理类,例如名为FooterTag.java。 2. 在该类中继承javax.servlet.jsp.tagext.TagSupport类,并重写doStartTag方法。 ```java import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; public class FooterTag extends TagSupport { @Override public int doStartTag() throws JspException { try { pageContext.include("/WEB-INF/views/common/footer.jsp"); } catch (Exception e) { e.printStackTrace(); } return SKIP_BODY; } } ``` 步骤二:创建标签库描述文件 1. 在Web项目的WebContent目录下创建一个名为taglib.tld的XML文件,用于描述自定义标签库。 2. 在taglib.tld文件中添加以下内容: ```xml <?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"> <tlib-version>1.0</tlib-version> <short-name>footer</short-name> <uri>http://example.com/footer</uri> <tag> <name>footer</name> <tag-class>com.example.FooterTag</tag-class> <body-content>empty</body-content> </tag> </taglib> ``` 步骤三:创建公共底部视图文件 1. 在Web项目的WEB-INF目录下创建一个名为views的文件夹。 2. 在views文件夹下创建一个名为common的文件夹。 3. 在common文件夹下创建一个名为footer.jsp的JSP文件,用于显示公共底部内容。 步骤四:引入自定义标签库并使用 1. 在需要显示公共底部的JSP页面中,引入自定义标签库。在页面的开头添加以下代码: ```jsp <%@ taglib prefix="footer" uri="http://example.com/footer" %> ``` 2. 在页面中使用自定义标签来显示公共底部。在需要显示底部的位置添加以下代码: ```jsp <footer:footer/> ``` 以上就是使用JSP自定义标签实现公共底部的详细步骤。通过创建自定义标签处理类、标签库描述文件,以及公共底部视图文件,然后在需要显示底部的JSP页面中引入标签库并使用自定义标签,即可实现公共底部的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值