当前位置: 代码迷 >> Java Web开发 >> 怀疑是自定义标签的bug?求指导
  详细解决方案

怀疑是自定义标签的bug?求指导

热度:167   发布时间:2016-04-16 21:49:49.0
怀疑是自定义标签的bug?求指点。
本帖最后由 battle_steed 于 2014-10-13 16:32:01 编辑

package steed.tag.outhtml;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.log4j.Logger;

import steed.util.base.BaseUtil;

public class TestJavaScript extends BodyTagSupport {
private static final long serialVersionUID = -1523362354887392103L;
@Override
public int doAfterBody() throws JspException {
return SKIP_BODY;
}

@Override
public int doStartTag() throws JspException {
return EVAL_BODY_BUFFERED;
}

@Override
public int doEndTag() throws JspException {
try {
JspWriter out = pageContext.getOut();
out.write("<h1 onclick='alert(18888);'>测试</h1>");
} catch (IOException e) {
e.printStackTrace();
}
return EVAL_PAGE;
}
}


页面正常输出:
<h1 onclick="alert(18888);">测试</h1>


但是把上面的31行改为:
out.write("<h1 onclick='alert('18888');'>测试</h1>");

页面却输出:
<h1 onclick="alert(" 18888');'="">测试</h1>


先不说单引号自动换成了双引号,等于号都多了一个。。。。
是自定义标签的bug,还是我水平问题,求各位指点。

------解决思路----------------------
这是html 双引号和单引号的问题,如何组合,网上很多例子。
  相关解决方案