首页 > 其他分享 >收藏 JSP自定义标签EL表达式取值问题

收藏 JSP自定义标签EL表达式取值问题

时间:2023-04-20 12:07:57浏览次数:32  
标签:EL code String 自定义 util JSP itown import com


给你个标签的例子自己看看吧!

标签:<framework:VoucherCodeToName code="" />

 tld.xml<tag>
        <name>VoucherCodeToName</name>
        <tagclass>com.itown.crm.fee.vouchermanager.util.VoucherCodeToNameTag</tagclass>
        <bodycontent>JSP</bodycontent>
        <attribute>
            <name>code</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
</tag>
VoucherCodeToNameTag.java


package com.itown.crm.fee.vouchermanager.util;

import java.util.ArrayList;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.commons.lang.StringUtils;
import org.apache.taglibs.standard.tag.el.core.ExpressionUtil;

import com.itown.crm.fee.vouchermanager.po.FeeVoucherInfo;
import com.itown.crm.util.DaoUtil;
import com.itown.framework.persistence.CachedRowSet;
import com.itown.util.ormapping.BeanHelper;

public class VoucherCodeToNameTag extends TagSupport {
	
	protected String code = "";

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}
	
	public int doStartTag() throws JspException {
		//解析表达式
		evaluateExpressions();
		//如果属性值为NUll或者为"",则不进行转换
		if(StringUtils.isBlank(code)) {
			return super.doStartTag();
		}
		try {
			String name = null;
			StringBuffer sql = new StringBuffer();
			sql.append("select * from FEE_VOUCHER_INFO where VOUCHER_ID='");
			sql.append(code);
			sql.append("'");

			CachedRowSet rs = DaoUtil.executeQuery(sql.toString());
			
			ArrayList list = BeanHelper.mapBeansByRS(rs, FeeVoucherInfo.class);
			if(list.size() > 0){
				name = ((FeeVoucherInfo)list.get(0)).getVoucherName();
			}
			this.pageContext.getOut().print(StringUtils.trimToEmpty(name));
		} catch (Exception e) {
			e.printStackTrace();
		}
		return SKIP_BODY;
	}
	private void evaluateExpressions() {
		try {
			code = (String) ExpressionUtil.evalNotNull("VoucherCodeToName", "code", code, java.lang.Object.class, this, pageContext); //第一个参数为这个标签的名称
        }
        catch(Exception ex) {
        	code = null;
        }
	}

}


 

标签:EL,code,String,自定义,util,JSP,itown,import,com
From: https://blog.51cto.com/u_16080829/6209383

相关文章

  • include与jsp:include区别
    我们都知道在jsp中include有两种形式,分别是<%@includefile=””%><jsp:includepage=””flush=”true”/> 以下是对include两种用法的区别主要有两个方面的不同;一:执行时间上:<%@includefile=”relativeURI”%>是在翻译阶段执行<jsp:includepage=”relati......
  • PL/SQL Developer自动补全SQL技巧
    s=SELECTt.*FROMtw=WHEREb=BETWEENANDl=LIKE'%%'o=ORDERBYinsw=IN(SELECTaFROMaWHEREa)sw=SELECTt.*FROMtWHEREtsc*=SELECTCOUNT(*)FROMtst=SELECTt.*,t.ROWIDFROMtf=FORUPDATEu=UPDATEtSET......
  • xshell断开ssh远程窗口,nginx进程被杀死
    主要原因:是openssh8+以上的版本对安全策略做了修改解决方法:在/usr/lib/systemd/system/[email protected] 配置增加KillMode=process[Unit]Description=OpenSSHper-connectionserverdaemonDocumentation=man:sshd(8)man:sshd_config(5)Wants=sshd-keygen.serviceAfter=sshd-ke......
  • ASEMI代理ADM202EARNZ-REEL原装ADI车规级ADM202EARNZ-REEL
    编辑:llASEMI代理ADM202EARNZ-REEL原装ADI车规级ADM202EARNZ-REEL型号:ADM202EARNZ-REEL品牌:ADI/亚德诺封装:SOIC-16批号:2023+引脚数量:16安装类型:表面贴装型ADM202EARNZ-REEL汽车芯片ADM202EARNZ-REEL特征特征符合89/336/EECEMC指令符合IEC1000-4-2(801.2)的ESD保护±8k......
  • 修改maven3项目的默认的编译级别(compile level)
    评:听闻maven的鼎鼎大名打算在最近的一个项目中试下爽,结果遇到了这个问题,虽对项目影响不大,但做技术刨根问题是必须的了,少废话。1.cmd命令建立web项目:mvnarchetype:generate-DgroupId=biz.yunduo-DartifactId=dts-DpackageName=dts-DarchetypeArtifactId=maven-archetype-we......
  • Elasticsearch应用
     vivo互联网的垂直搜索业务刚开始用Elasticsearch时,从0到1的过程没有太大挑战,很快就能实现垂搜的基本功能。但是一旦实现了这个功能之后,搜索引擎需要持续优化迭代,大家会发现诸如分词效果不好,数据召回率或准确率不够等方面的问题。数据索引、检索以及排序这三个方面都有做......
  • 记录一次使用 表达式引擎 自定义注解 还有 sql union all 实现对数据库数据提取、重组
    这样编写减少了前后端很多没必要的遍历,以及if判断并最大限度提高了代码的可变通性额外需要学习的是ORM框架下,如何接收多表(各表结构不同)操作后,sql返回的新结构的临时表问题表达式引擎用到的依赖<dependency><groupId>org.apache.commons</groupId>......
  • 如何在html页面引入Element组件
    相关步骤1、引入相关链接<linkrel="stylesheet"href="https://unpkg.com/[email protected]/lib/theme-chalk/index.css"><scriptsrc="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><scriptsrc="https://un......
  • 用Selenium自动化测试时,让ChromeDriver中不显示“正受到自动测试软件控制”
    背景:在用Selenium做自动化测试的时候,默认ChromeDriver是会提示“Chrom正受到自动测试软件控制”的。如下图这样。但我们有些场景下,不希望这个提示出现。本文探索了几种语言去掉这个提示条的方法,希望对小伙伴有帮助。  1.JavaChromeOptionsoptions=newChromeOptions(......
  • Vue3 自定义hook
    视频9.自定义hook函数什么是hook?——本质是一个函数,把setup函数中使用的CompositionAPI进行了封装。类似于vue2.x中的mixin。自定义hook的优势:复用代码,让setup中的逻辑更清楚易懂。componentsDemo.vue<template> <h2>当前求和为:{{sum}}</h2> <button@clic......