JSP自定义select标签中取值

JSP自定义select标签的取值

select取值是通过name属性获取。
自定义标签的流程:

1.继承JSP标签的标签类TagSupport,SimpleTagSupport等,重写dostart()或doTag()等方法;

			public class DictTag extends TagSupport{
	
			private static Log log = LogFactory.getLog(DictTag.class);
			private String dictType;
			//设置默认值
			private String selectValue;
			private String id;
			private String name;
			private String htmlType;
			private static final long serialVersionUID = 1L;

			@Override
			public int doStartTag() throws JspException {
			try {
				String str = "";
				if("select".equals(htmlType)){
					str = genSelect();
				}
				log.info(str);
				pageContext.getOut().write(str);

			} catch (Exception e) {
			
			}
			   return EVAL_BODY_INCLUDE;
			}



2.定义自定义标签的属性生成get,set方法

		private String genSelect(){
			/*<select id="payInit_voutype" name="">
		 	 <option value="01">直接支付</option>
		 	 <option value="02">授权支付</option>
			</select>*/
			//selected="selected"
			StringBuffer sb = new StringBuffer();
			/*sb.append("<select id=\"").append(id).append("\">");*/
			//给select添加name属性方可获取select的值,
后台
通过name属性给取值 sb.append("<select id=\"").append(id).append("\"").append(" name=\"").append(dictType).append("\">"); List<Dict> ds = SystemCache.getDictList(dictType); for(Dict d:ds){ String sd = ""; if(d.getCode().equals(selectValue)){sd = "selected=\"selected\""; }sb.append("<option " + sd +" value=\""+d.getCode()+"\">"+d.getMsg()+"</option>"); } return sb.toString(); }


3.后台获取数据的方法业务的实现

4.编写.tld配置文件

<taglib>

			<tlib-version>1.0</tlib-version>
			<jsp-version>1.2</jsp-version>
			<short-name>http://www.crm.com/dict/tag</short-name>
			<description>自定义标签</description>
			<!-- 字典表标签下拉列表 -->
			<tag>
				<name>dictTag</name>
				<tag-class>com.xyy.springmvc.mybatis.tag.DictTag</tag-class>
				<attribute>//标签属性定义
					<name>id</name>
					<required>false</required>
					<rtexprvalue>true</rtexprvalue>
					<type>java.lang.String</type>
				</attribute>
			</tag>
			</taglib>

5.JSP页面引用标签

			<%@ taglib uri="/WEB-INF/tld/dict.tld" prefix="dic" %>
		
		 <dic:dictTag dictType="vouTyp" id="codeType" htmlType="select" name="vouTyp"/>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值