JSP自定义select标签中取值

来源:互联网 发布:虎贲万岁 知乎 编辑:程序博客网 时间:2024/06/10 02:14

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;@Overridepublic 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"/>


0 0