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:拿到属性值的位置