我现在想从servlet里返回一个类似<graph caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units' showNames='1' decimalPrecision='0' formatNumberScale='0'>
<set name='Jan' value='462' color='AFD8F8' />
</graph>
这样的字符串到jsp页面上。但我到页面上去取的时候页面总是得到的一个空串。
我的servlet代码如下: protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
StringBuilder builder = new StringBuilder();
builder.append("<graph caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units' showNames='1' decimalPrecision='0' formatNumberScale='0'>");
builder.append("<set name='Jan' value='462' color='AFD8F8' />");
builder.append("<set name='Feb' value='857' color='F6BD0F' />");
builder.append("<set name='Mar' value='671' color='8BBA00' />");
builder.append("<set name='Apr' value='494' color='FF8E46' />");
builder.append("<set name='May' value='761' color='008E8E' />");
builder.append("<set name='Jun' value='960' color='D64646' />");
builder.append("<set name='Jul' value='629' color='8E468E' />");
builder.append("<set name='Aug' value='622' color='588526' />");
builder.append("<set name='Sep' value='376' color='B3AA00' />");
builder.append("<set name='Oct' value='494' color='008ED6' />");
builder.append("<set name='Nov' value='761' color='9D080D' />");
builder.append("<set name='Dec' value='960' color='A186BE' />");
builder.append("</graph>");
request.setAttribute("data", builder); request.getRequestDispatcher("test.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}页面代码:<%=request.getAttribute("data") %>现在页面上老是什么都不显示出来,应该得到的是一个空串吧。我试了下返回其它的字符串页面上就能正常显示。
我在servlet里面加上了request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
response.setContentType("text/xml;charset=gb2312");页面还是空串。
我只是想返回一个类试xml格式的字符串而已。然后到页面上得到这个字符串。

解决方案 »

  1.   

    request.setAttribute("data", builder.toString());
    这里的 builder 不是String,是StringBuffer,
    有可能是这个问题。
      

  2.   

    .....我用的是post方式提交表单
    这个和你提交表单没关系吧, 嗯, 楼上说的有道理,当然,你也可以在 jsp 中这样,<%=request.getAttribute("data").toString() %>不过,如果得到的  request.getAttribute("data")  是null的话就可能有问题
      

  3.   

    你的问题我曾经遇到过,因为XML中有尖括符,这些符号也是HTML的关键字,因此,它当作HTML的关键字处理 了。因此,你的XML看不到任何内容。有一个HTML标签可达到你的要求:"<XMP>"+XML+"</XMP>";即前后加上这个标签:<XMP>  </XMP><XMP>中间的代码可以原样显示了。