总结-JSP自定义标签select与报错

本文总结了在开发和使用JSP自定义标签select时可能遇到的错误,包括XML配置错误、setter/getter方法匹配问题、属性弃用等,并提供了详细的解决办法,帮助开发者快速排查和解决问题。
摘要由CSDN通过智能技术生成

上一次博客介绍了自定义标签的详细步骤,今天回顾一下

自定义标签的开发及使用步骤

1 创建一个标签助手类(继承BodyTagSupport)
  标签属性必须助手类的属性对应、且要提供对应get/set方法
  rtexprvalue
2 创建标签库描述文件(tld),添加自定义标签的配置
  注:tld文件必须保存到WEB-INF目录或其子目录
3 在JSP通过taglib指令导入标签库,并通过指定后缀
  访问自定义标签

这里常见报错与解决

第一种
.org.apache.jasper.JasperException: /Demo1.jsp (line: 61, column: 0) Attribute textKey invalid for tag select according to TLD
标签库中,property不存在属性name,(我当时是没细心,去好好检查xml修改即可)
第二种
在这里插入图片描述

 The JSP specification requires that an attribute name is preceded by whitespace

解决:前面少了一个空格

第三种

 1. Unable to find setter method for attribute: XXx(在调用属性的时候不调用这个报错的属性也行/多刷新几遍就莫名其妙的好)
 2. 意思是:属性没有定义setter方法。

1.tld文件里如下的定义出现问题,是==定义的时候 自定义标签处理类 定义错了 ,定义到了另外一个文件 导致找不到setter方法,
2.你看一下在SelectTag里是否有set,get方法
/SelectTag中的属性名与tld是否对应/.jsp文件和.tld文件中这个属名性是否一致/三者都检查后还是不行就都重新写一遍,或者你将set,get先删掉,重新写一次,xml也重新写(最后我重新写了get/set就好了
3.属性是否已经弃用 有@Deprecated注解或者根本就没找到 XXX这个属性
(改名 重新访问请求,页面错误消失

自定义标签Select

1.实体类Teacher

package com.wxm.jsp.tag; 
public class Teacher {
private String tid;
private String tname;
public String getTid() {	
return tid;
}
public void setTid(String tid) {	
this.tid = tid;
}
public String getTname() {	
return tname;
}
public void setTname(String tname) {	
this.tname = tname;
}
public Teacher(String tid, String tname) {	
super();	
this.tid = tid;	
this.tname = tname;
}
public Teacher() {	
super();
}  
}

2.SelectTag.java

package com.wxm.jsp.tag; 
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties; 
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;
 import org.apache.commons.beanutils.PropertyUtils;
 /** * 自定义select标签应该具备的功能
  * 1.新增查询页面,只要通过一个标签就可以完成数据的绑定,而并非使用c:foreach去循环绑定数据 
  * 2.修改页面,同样通过一个自定义标签完成的数据的遍
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值