J2EE之JSP标签

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.BodyTagSupport;

public class If extends BodyTagSupport {

private boolean test;

public boolean isTest() {

return test;

}

public void setTest(boolean test) {

this.test = test;

}

@Override

public int doStartTag() throws JspException {

return this.test ? EVAL_BODY_INCLUDE : SKIP_BODY;

}

@Override

public int doEndTag() throws JspException {

// TODO Auto-generated method stub

return super.doEndTag();

}

}

5.z:set与z:out 标签


out标签:无文本输出 属性value  需要用到:

pageContext:setAttribute(var,value)

JspWrite  out=pageContext.getOut();out.print(value)

package com.ltf;

import java.io.IOException;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.tagext.BodyTagSupport;

public class Out extends BodyTagSupport {

private Object value;

public Object getValue() {

return value;

}

public void setValue(Object value) {

this.value = value;

}

@Override

public int doStartTag() throws JspException {

JspWriter out = pageContext.getOut();

try {

out.print(value);

} catch (IOException e) {

e.printStackTrace();

}

return super.doStartTag();

}

@Override

public int doEndTag() throws JspException {

// TODO Auto-generated method stub

return super.doEndTag();

}

}

set标签属性为var 和value,value的类型为object

package com.ltf;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.BodyTagSupport;

public class SetTag extends BodyTagSupport {

private String var;

private Object value;

public String getVar() {

return var;

}

public void setVar(String var) {

this.var = var;

}

public Object getValue() {

return value;

}

public void setValue(Object value) {

this.value = value;

}

@Override

public String toString() {

return “SetTag [var=” + var + “, value=” + value + “]”;

}

@Override

public int doStartTag() throws JspException {

pageContext.setAttribute(var, value);

return super.doStartTag();

}

}

6.z:foEeach标签


属性值:var items

start:Iterater it=items.iterater();    pageContext.setAttribute(“it”,it);

使用迭代器遍历可避免下标越界报错

after:Iterater  it=(Iterater)pageContext.getAttribute(“it”);

if(it.hasNext()){

pageContext.setAtribute(var,it.next());

pageContext.setAtribute(“it”,it);

return EVAL_BODY_AGAIN;

}else{

return EVAL_PAGE;

}

package com.ltf;

import java.util.Iterator;

import java.util.List;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.BodyTagSupport;

public class ForEach02 extends BodyTagSupport {

private String var;

private List items;

public String getVar() {

return var;

}

public void setVar(String var) {

this.var = var;

}

public List getItems() {

return items;

}

public void setItems(List items) {

this.items = items;

}

@Override

public int doStartTag() throws JspException {

Iterator it = items.iterator();

pageContext.setAttribute(“it”, it);

return EVAL_BODY_INCLUDE;

}

@Override

public int doAfterBody() throws JspException {

Iterator it=(Iterator)pageContext.getAttribute(“it”);

if(it.hasNext()) {

pageContext.setAttribute(var, it.next());

pageContext.setAttribute(“it”, it);

return EVAL_BODY_AGAIN;

}else {

return EVAL_PAGE;

}

}

}

7.select标签

items 数据源属性 用于遍历展示

key 对应option里面的value属性

val  对应option里面的text文本

dkey 对应默认option里面的value属性

dval  对应默认option里面的text文本

selectVal 对应回显值的value属性

package com.ltf;

import java.lang.reflect.Field;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.PageContext;

import javax.servlet.jsp.tagext.BodyTagSupport;

public class SelectTag extends BodyTagSupport{

private String val;

private List items=new ArrayList();

private String name;

private String dkey;//默认属性

private String dval;//默认内容

private String selectVal;

@Override

public int doStartTag() throws JspException {

JspWriter out=pageContext.getOut();

try {

out.print(toHTML());

} catch (Exception e) {

e.printStackTrace();

}

return super.doStartTag();

}

private String toHTML() throws Exception {

// 拼接

StringBuffer s=new StringBuffer();

s.append(“”);

if(dval!=null&&!“”.equals(dval)) {

//拼接默认显示标签

s.append(“”+dval+“”);

}

if(items.size()>0) {

for(Object obj:items) {

//由于属性和内容是不确定的 所有通过反射拿到对象的属性和text内容

Field f1=obj.getClass().getDeclaredField(val);

f1.setAccessible(true);

Object o1=f1.get(obj).toString();

Field f2=obj.getClass().getDeclaredField(val);

f2.setAccessible(true);

Object o2=f2.get(obj).toString();

if(o1.equals(selectVal)) {

//value等于回显值则默认选中

s.append(“<option value='”+o1+“'selected>”+o2+“”);

}else {

s.append(“”+o2+“”);

}

}

}

s.append(“”);

return s.toString();

}

public String getVal() {

return val;

}

public void setVal(String val) {

this.val = val;

}

public List getItems() {

return items;

}

public void setItems(List items) {

this.items = items;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getDkey() {

return dkey;

}

public void setDkey(String dkey) {

this.dkey = dkey;

}

public String getDval() {

return dval;

}

public void setDval(String dval) {

this.dval = dval;

}

public String getSelectVal() {

return selectVal;

}

public void setSelectVal(String selectVal) {

this.selectVal = selectVal;

}

}

tld文件如下:

1.0

1.2

test

/zking

text

com.ltf.Jsp01

jsp

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值