JAVA2EE-----jsp标签(02)

简介: JAVA2EE-----jsp标签(02)

1.jsp标签是什么?

JSP标签:指的是JavaServer Pages标签,是JavaWeb应用程序中使用的标签语言。JSP标签允许开发人员将Java代码嵌入到HTML中,以便在Web页面上动态生成内容。

2.jsp标签的特点:

2.1标签的格式:

<开始标签 属性="属性值">标签体

示例:

true

2.2标签的分类:

    空标签: br   hr    

   UI标签 :    input,table  

   控制标签:  if  foreach

   数据标签:  out

3.foreach标签

3.1foureach的步骤及运用:
3.1.1首先先定义一个FoReachTag的类
public class SelectTag extends BodyTagSupport {
  //下拉框的数据源
  private List<Object> itmes = new ArrayList<Object>();
  //  下拉框option的value值
  private String optionVal;
  //  下拉框option的标签体内容
  private String optionText;
  //  数据库中存储的数据,用于下拉框回显
  private String selectedVal;
  public String getSelectedVal() {
    return selectedVal;
  }
  public void setSelectedVal(String selectedVal) {
    this.selectedVal = selectedVal;
  }
  public List<Object> getItmes() {
    return itmes;
  }
  public void setItmes(List<Object> itmes) {
    this.itmes = itmes;
  }
  public String getOptionVal() {
    return optionVal;
  }
  public void setOptionVal(String optionVal) {
    this.optionVal = optionVal;
  }
  public String getOptionText() {
    return optionText;
  }
  public void setOptionText(String optionText) {
    this.optionText = optionText;
  }
  @Override
  public int doStartTag() throws JspException {
    //    因为k:select 标签没有标签体,页面又要输出下拉框内容
    JspWriter out = pageContext.getOut();
    try {
      out.print(toHTML());
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return super.doStartTag();
  }
  private String toHTML() throws Exception {
    StringBuffer sb = new StringBuffer("<select>");
    for (Object object : itmes) {
      //      取出某一个对象的某个属性
      String val = getObjAttrValue(object,optionVal);
      String text = getObjAttrValue(object,optionText);
      sb.append("<option "+(val.equals(selectedVal) ? "selected" : "")+" value='"+val+"'>"+text+"</option>");
    }
    sb.append("</select>"); 
    return sb.toString();
  }
  /**
   * 获取某个对象的某个属性值
   * @param object    dept
   * @param optionVal2  id/name
   * @return
   * @throws Exception 
   * @throws NoSuchFieldException 
   */
  private String getObjAttrValue(Object object, String attr) throws Exception {
    Class cl = object.getClass();
    Field f = cl.getDeclaredField(attr);
    f.setAccessible(true);
    return f.get(object).toString();
  }
}

3.1.2再去自定义标签内添加foreach

3.1.3最后输出及效果

4.select标签:

4.1select标签的步骤及运用:

4.1.1先定义一个SelectTag的类

public class SelectTag extends BodyTagSupport {
  //下拉框的数据源
  private List<Object> itmes = new ArrayList<Object>();
  //  下拉框option的value值
  private String optionVal;
  //  下拉框option的标签体内容
  private String optionText;
  //  数据库中存储的数据,用于下拉框回显
  private String selectedVal;
  public String getSelectedVal() {
    return selectedVal;
  }
  public void setSelectedVal(String selectedVal) {
    this.selectedVal = selectedVal;
  }
  public List<Object> getItmes() {
    return itmes;
  }
  public void setItmes(List<Object> itmes) {
    this.itmes = itmes;
  }
  public String getOptionVal() {
    return optionVal;
  }
  public void setOptionVal(String optionVal) {
    this.optionVal = optionVal;
  }
  public String getOptionText() {
    return optionText;
  }
  public void setOptionText(String optionText) {
    this.optionText = optionText;
  }
  @Override
  public int doStartTag() throws JspException {
    //    因为k:select 标签没有标签体,页面又要输出下拉框内容
    JspWriter out = pageContext.getOut();
    try {
      out.print(toHTML());
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return super.doStartTag();
  }
  private String toHTML() throws Exception {
    StringBuffer sb = new StringBuffer("<select>");
    for (Object object : itmes) {
      //      取出某一个对象的某个属性
      String val = getObjAttrValue(object,optionVal);
      String text = getObjAttrValue(object,optionText);
      sb.append("<option "+(val.equals(selectedVal) ? "selected" : "")+" value='"+val+"'>"+text+"</option>");
    }
    sb.append("</select>"); 
    return sb.toString();
  }
  /**
   * 获取某个对象的某个属性值
   * @param object    dept
   * @param optionVal2  id/name
   * @return
   * @throws Exception 
   * @throws NoSuchFieldException 
   */
  private String getObjAttrValue(Object object, String attr) throws Exception {
    Class cl = object.getClass();
    Field f = cl.getDeclaredField(attr);
    f.setAccessible(true);
    return f.get(object).toString();
  }
}

4.1.2再去自定义标签select

4.1.3最后输出及效果展示

selectedVal:拿到属性值的位置


目录
相关文章
|
6月前
|
XML SQL Java
JSP标签介绍(02)
JSP标签介绍(02)
20 0
|
6月前
J2EE&JSP标签02&Foreach标签&select
J2EE&JSP标签02&Foreach标签&select
|
2月前
|
Java
jsp页面中使用jstl标签报错:javax.servlet.jsp.JspTagException
jsp页面中使用jstl标签报错:javax.servlet.jsp.JspTagException
13 0
|
4月前
|
Java
jsp标签下
jsp标签下
27 0
|
4月前
|
XML Java 数据格式
jsp标签上
jsp标签上
26 0
|
4月前
|
Java
JSP标签(2) -----自定义foreach ,select标签,全网最详细,最完整易懂
JSP标签(2) -----自定义foreach ,select标签,全网最详细,最完整易懂
|
4月前
|
Java API
JSP标签 01 完整详细
JSP标签 01 完整详细
|
4月前
|
Java
JSP标签(01)
JSP标签(01)
28 0
|
4月前
|
Java 数据安全/隐私保护
Shiro - JSP页面标签应用
Shiro - JSP页面标签应用
29 0
|
5月前
|
XML Java 程序员
自定义JSP标签
自定义JSP标签