如果你没有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程序需要发送命令如PICC_HaltA、PICC_SelectTag和PICC_ReadCardSerial。这些命令会启动RFID-RC522模块搜索并选中一个卡片,然后读取卡片的序列号。读取的数据会通过SPI接口传回C51单片机,程序需要...
如果检测到卡片,可以通过PCD_SelectTag命令选择特定卡片。 5. **读写操作**:针对MIFARE Classic卡,可以使用PCD_CommunicateTHRU命令读取或写入扇区和块。对于读操作,需要先进行认证,使用PCD_Authenticate命令...
每个步骤都对应着特定的RC522命令,例如AntiColl()用于防碰撞处理,SelectTag()用于选择特定的卡片,ReadCardSerial()用于读取卡片序列号。 在实际应用中,RC522模块的读写功能往往封装在库函数中,如`rc522_read()...
3. 读取RFID数据:通过SelectTag函数选择特定的标签,然后使用ReadRegister或WriteRegister函数读取或写入数据。 4. 错误处理:捕获并处理可能出现的通信错误,例如超时或CRC校验失败。 在MFRC522 RFID 读写模块...
4. **MFRC522命令**:RC522支持多种命令,如PICC_HaltA、PICC_SelectTag、PICC_ReadCardSerial等,用于初始化、选择卡片、读取卡片数据等操作。在程序中,需要根据具体需求发送相应的命令并解析响应。 5. **防冲突...
6. **卡片选择**:`MFRC522_SelectTag()`函数用于从已检测到的卡片中选择特定的卡片进行进一步操作。 7. **数据加密**:MFRC522芯片内置了硬件加密引擎,可以在`MFRC522_Encrypt()`或`MFRC522_Decrypt()`函数中实现...
MFRC522是NXP半导体公司生产的一款用于非接触式射频识别(RFID)的微控制器,常用于无接触式智能卡和读写器应用。...无论是初学者还是经验丰富的开发者,都可以通过学习和使用这个库,快速构建自己的RFID系统。
线程中,我们调用MFRC522的读卡指令,例如PICC_HaltA和PICC_SelectTag,以检测并选中RFID卡片。读取到卡片信息后,可以通过串口或网络将数据发送到上位机进行处理。 在实际应用中,为了增强系统的稳定性和效率,...
3. 选卡:一旦检测到卡片,通过发送SelectTag命令,确定卡片的类型和地址。 4. 通信:之后,可以使用Read/Write命令进行数据交换。MFRC522.C中的函数会处理这些低级通信细节。 5. 安全操作:MFRC522支持AES加密,...
2. 搜索卡:使用PICC_HaltA命令停止所有卡片,然后使用PICC_SelectTag命令选择一张卡片。 3. 读取卡片信息:调用MIFARE_Read命令读取卡片扇区中的数据块。 4. 写入卡片信息:先验证扇区密钥,然后使用MIFARE_Write...
4. **PICC_SELECTTAG**:选择特定卡片。 5. **PICC_AUTHENT1A**/ **PICC_AUTHENT1B**:验证A/B密钥。 这些命令用于控制和操作Mifare One类型的RFID卡片,实现基本的功能需求。 #### 六、总结 通过以上分析,我们...