`
kevinhrw
  • 浏览: 190793 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

自己写的SelectTag

    博客分类:
  • java
阅读更多
如果你没有spring的tag或struct的tag,使用我这个做下拉选单,还是很方便的.
<iit:select name= "selectName" items="${selectList}" itemValue = "selectValue" itemLabel = "selectLabel" selectValue="${selectValue}"/>

一个select下拉选单,一行搞定.
可以带onchange事件,带默认值选定
自己觉得使用很方便.

import java.util.Collection;
import java.util.Iterator;
import java.util.Map;

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

import org.apache.commons.beanutils.BeanUtils;

public class SelectTag extends TagSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = -9049765299272180960L;

	/**
	 * The {@link Collection}, {@link Map} or array of objects used to generate
	 * the inner '<code>option</code>' tags.
	 */
	private Object items;

	/**
	 * The name of the property mapped to the '<code>value</code>' attribute
	 * of the '<code>option</code>' tag.
	 */
	private String itemValue;

	/**
	 * The name of the property mapped to the inner text of the '<code>option</code>'
	 * tag.
	 */
	private String itemLabel;
	private String selectValue;
	private String emptyValue;
	private String name;
	private String id;

	private String onchange;

	public void release() {
		items = null;
		itemValue = null;
		itemLabel = null;
		selectValue = null;
		emptyValue = null;
		name = null;
		id = null;
		onchange = null;
	}

	@SuppressWarnings("unchecked")
	public int doEndTag() throws JspException {
		JspWriter jspOut = pageContext.getOut();
		try {
			jspOut.append("<select id=\"" + getId() + "\" name=\"" + name + "\" " + getOnchange() + " >");
			jspOut.append("<option value=\"" + getEmptyValue() + "\">Please Select</option>");
			if (items != null) {
				Collection itemsList = (Collection) items;
				for (Iterator iterator = itemsList.iterator(); iterator.hasNext();) {
					Object obj = (Object) iterator.next();
					Object value = BeanUtils.getProperty(obj, itemValue);
					Object label = BeanUtils.getProperty(obj, itemLabel);
					if (value != null && value.equals(selectValue)) {
						jspOut.append("<option value=\"" + value + "\" selected = \"selected\">" + label + "</option>");
					} else {
						jspOut.append("<option value=\"" + value + "\">" + label + "</option>");
					}

				}
			}
			jspOut.append("</select>");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			itemValue = null;
			itemLabel = null;
			selectValue = null;
			emptyValue = null;
			name = null;
			id = null;
			onchange = null;
		}

		return EVAL_PAGE;
	}

	public String getId() {
		if (id == null) {
			id = name;
		}
		return id;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setId(String id) {
		this.id = id;
	}

	public void setItems(Object items) {
		this.items = items;
	}

	public void setItemValue(String itemValue) {
		this.itemValue = itemValue;
	}

	public void setItemLabel(String itemLabel) {
		this.itemLabel = itemLabel;
	}

	public void setSelectValue(String selectValue) {
		this.selectValue = selectValue;
	}

	public void setEmptyValue(String emptyValue) {
		this.emptyValue = emptyValue;
	}

	public String getEmptyValue() {
		if (emptyValue == null) {
			emptyValue = "-1";
		}
		return emptyValue;
	}

	public void setOnchange(String onchange) {
		this.onchange = onchange;
	}

	public String getOnchange() {
		if (onchange == null) {
			return "";
		}
		return "onchange=\"" + onchange + "\"";

	}
}


           <tag>
		<name>select</name>
		<tagclass>com...SelectTag</tagclass>
		<bodycontent>empty</bodycontent>
		<attribute>
			<name>name</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>id</name>
			<required>false</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>items</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>itemValue</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		<attribute>
			<name>itemLabel</name>
			<required>true</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>

		<attribute>
			<name>emptyValue</name>
			<required>false</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>

		<attribute>
			<name>selectValue</name>
			<required>false</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
		
		<attribute>
			<name>onchange</name>
			<required>false</required>
			<rtexprvalue>true</rtexprvalue>
		</attribute>
	</tag>
分享到:
评论

相关推荐

    C51单片机使用RFID-RC522模块实现读卡、写卡等等.zip

    实现读卡功能,C51程序需要发送命令如PICC_HaltA、PICC_SelectTag和PICC_ReadCardSerial。这些命令会启动RFID-RC522模块搜索并选中一个卡片,然后读取卡片的序列号。读取的数据会通过SPI接口传回C51单片机,程序需要...

    9.2 RFID-读写卡_STM32F103_驱动RFID---RC522_

    如果检测到卡片,可以通过PCD_SelectTag命令选择特定卡片。 5. **读写操作**:针对MIFARE Classic卡,可以使用PCD_CommunicateTHRU命令读取或写入扇区和块。对于读操作,需要先进行认证,使用PCD_Authenticate命令...

    STM32战舰版RC522使用例程

    每个步骤都对应着特定的RC522命令,例如AntiColl()用于防碰撞处理,SelectTag()用于选择特定的卡片,ReadCardSerial()用于读取卡片序列号。 在实际应用中,RC522模块的读写功能往往封装在库函数中,如`rc522_read()...

    MFRC522 RFID 读写模块使用说明.rar_C++_Builder_

    3. 读取RFID数据:通过SelectTag函数选择特定的标签,然后使用ReadRegister或WriteRegister函数读取或写入数据。 4. 错误处理:捕获并处理可能出现的通信错误,例如超时或CRC校验失败。 在MFRC522 RFID 读写模块...

    STM32驱动RFID程序

    4. **MFRC522命令**:RC522支持多种命令,如PICC_HaltA、PICC_SelectTag、PICC_ReadCardSerial等,用于初始化、选择卡片、读取卡片数据等操作。在程序中,需要根据具体需求发送相应的命令并解析响应。 5. **防冲突...

    RC522_rc522头文件_头文件_MFRC522_

    6. **卡片选择**:`MFRC522_SelectTag()`函数用于从已检测到的卡片中选择特定的卡片进行进一步操作。 7. **数据加密**:MFRC522芯片内置了硬件加密引擎,可以在`MFRC522_Encrypt()`或`MFRC522_Decrypt()`函数中实现...

    Python库 | mfrc522-0.0.5.tar.gz

    MFRC522是NXP半导体公司生产的一款用于非接触式射频识别(RFID)的微控制器,常用于无接触式智能卡和读写器应用。...无论是初学者还是经验丰富的开发者,都可以通过学习和使用这个库,快速构建自己的RFID系统。

    rt-thread-RC522.rar

    线程中,我们调用MFRC522的读卡指令,例如PICC_HaltA和PICC_SelectTag,以检测并选中RFID卡片。读取到卡片信息后,可以通过串口或网络将数据发送到上位机进行处理。 在实际应用中,为了增强系统的稳定性和效率,...

    RFID_MFRC522_

    3. 选卡:一旦检测到卡片,通过发送SelectTag命令,确定卡片的类型和地址。 4. 通信:之后,可以使用Read/Write命令进行数据交换。MFRC522.C中的函数会处理这些低级通信细节。 5. 安全操作:MFRC522支持AES加密,...

    rc522的使用方法

    2. 搜索卡:使用PICC_HaltA命令停止所有卡片,然后使用PICC_SelectTag命令选择一张卡片。 3. 读取卡片信息:调用MIFARE_Read命令读取卡片扇区中的数据块。 4. 写入卡片信息:先验证扇区密钥,然后使用MIFARE_Write...

    rfid读卡程序

    4. **PICC_SELECTTAG**:选择特定卡片。 5. **PICC_AUTHENT1A**/ **PICC_AUTHENT1B**:验证A/B密钥。 这些命令用于控制和操作Mifare One类型的RFID卡片,实现基本的功能需求。 #### 六、总结 通过以上分析,我们...

Global site tag (gtag.js) - Google Analytics