/*** lostingz* Created on 2015年11月18日*/
package com.test.web.tags;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts2.components.Component;
import org.apache.struts2.views.jsp.ComponentTagSupport;import com.opensymphony.xwork2.util.ValueStack;public class TestTag extends ComponentTagSupport {private static final long serialVersionUID = 1L;private String code;/*** 获得一个基本类的对象。** @param stack* @param req* @param res* @return*/@Overridepublic Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {return new TestComponent(stack);}/*** 设置标签获取到的code对象。* @param code*/public void setCode(String code) {this.code = code;}protected void populateParams() {super.populateParams();TestComponent testComponent = (TestComponent) component;//将code赋值给compnent
        testComponent.setCode(code);}}

/*** lostingz* Created on 2015年11月18日*/
package com.test.web.tags;import java.io.IOException;
import java.io.Writer;import org.apache.struts2.components.Component;
import com.opensymphony.xwork2.util.ValueStack;public class TestComponent extends Component {private String code;public TestComponent(ValueStack stack) {super(stack);}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public boolean start(Writer writer) {boolean flag = true;try {String result = getInfo(code);       //输出writer.write(result);} catch (IOException e) {e.printStackTrace();}return flag;}public boolean end(Writer writer, String body) {return super.end(writer, body);}private String getInfo(String code){     //处理code得到显示的信息return doSomething(code);}}

配置

<taglib>   <tlib-version>2.2.3</tlib-version>   <jsp-version>1.2</jsp-version>   <short-name>test</short-name>   <uri>/testTag</uri><display-name>"test"</display-name>   <tag>   <name>getCode</name>   <tag-class>com.test.web.tags.TestTag</tag-class>    <body-content>empty</body-content>       <attribute>   <name>code</name>   <required>false</required>   <rtexprvalue>true</rtexprvalue>   </attribute></tag>
</taglib> 

转载于:https://www.cnblogs.com/birkhoff/p/4974647.html

struts2 实现自定义标签相关推荐

  1. Struts2自定义标签——示例

    自定义Button功能描述: <tangs:button  items="apple,orange,banana"/> 解析后为: <input  type=&q ...

  2. [JavaWeb基础] 012.Struts2 自定义标签使用

    在做开发中,我们会把一些比较经常使用到的代码封装起来,这样可以加快开发的速度和减少错误,并且在修改bug可以一次修改多次修复.那么在前端页面上,如果我们要经常用到公用的显示功能,并涉及到服务端逻辑操作 ...

  3. struts2自定义标签_Struts 2 –没有为动作和结果输入定义结果

    struts2自定义标签 Recently while working on a Struts 2 project, I got a strange error message No result d ...

  4. Struts2之控制标签

    Struts2的控制标签,主要用于完成流程控制,以及对ValueStack中的控制,控制标签可以完成输出流程的控制,例如循环.分支等操作,也可以完成对集合的合并.排序等操作. 1.常用的控制标签有:i ...

  5. java 模糊查询 分页(自定义标签)

    本次的实现是采用struts2+hibernate+分页标签 实现 class :PagerTag 是用来实现自定义分页标签,继承SimpleTagSupport实现自定义标签 public clas ...

  6. JSTL(c标签)与Struts2(s标签)标签

    引入jstl标签库 项目导入standard.jar ,jstl.jar包 在jsp页面加入如下句: <%@ taglib prefix="c" uri="http ...

  7. javaweb学习总结(二十三)——jsp自定义标签开发入门

    一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 packag ...

  8. struts2中使用标签操作静态方法等

    2019独角兽企业重金招聘Python工程师标准>>> 有的时候对<%%>特别敏感,不想用jsp的<% %>来调用java类中的静态方法,这时候我们可以用st ...

  9. [PHP] JQuery+Layer实现添加删除自定义标签代码

    JQuery+Layer实现添加删除自定义标签代码 实现效果如下: 实现代码如下: <!doctype html> <html> <head> <meta c ...

最新文章

  1. 合并排序(C语言实现)
  2. Leangoo背景更新-看板背景任你选!!!
  3. 苏黎世大学 AI 新研究:仅用少量样本生成高质量光声图像
  4. jQuery中的.bind()、.live()和.delegate()之间区别分析
  5. CF1B Spreadsheets
  6. WePY框架开发的小程序如何在微信web开发者工具中运行起来
  7. jmeter-00 JMeter 运行过程
  8. 01.轮播图之三 : collectionView 轮播
  9. map函数的用法python,详解Python map函数及Python map()函数的用法
  10. Spring JdbcTemplate 模板剖析 之 常用 增删改查
  11. 栈基本操作的java代码实现(建栈,初始化栈、进栈、出栈)
  12. win10电脑时间同步设置方法
  13. QQ音乐的歌曲真实地址解析
  14. 推荐电影 梦工厂经典电影列表 1996-2012
  15. noob的第一步——基于51单片机的指纹密码锁
  16. 【创业感悟】企业生存法则
  17. 系统服务之下载管理(DownloadManager)
  18. performance 优化
  19. Redis-命令操作Redis
  20. @2022-02-22:每日一语

热门文章

  1. suse11sp4配置vnc显示gnome
  2. 区块链学堂:区块链引子
  3. ess用户名和密码_陈ess洁如何从摄影系学生转变为成功的自由职业者和内容创作者(播客)...
  4. devkit_如何使用NodeMCU Devkit和Firebase数据库开始物联网
  5. javascript案例_如何在JavaScript中使用增强现实-一个案例研究
  6. python中opencv中inrange用法_python-opencv中的cv2.inRange函数
  7. (C++)1040 有几个PAT
  8. 专业的java培训机构是否靠谱,对比一下就知道了!
  9. docker的网络架构配置
  10. Python中的注释(转)