Java Jsp out.print()捕获了额外的文本

Java Jsp out.print()捕获了额外的文本,java,jsp,printing,Java,Jsp,Printing,我的Jsp中有代码片段: catch (Exception e) { out.print("<Grid><IO Result='-1' Message='"); out.print(e.toString()); out.print("'/></Grid>"); out.close(); throw new Exception(""); } catch(异常e){ 输出。打印(“”); out.close(); 抛出新异常(“”); }

我的Jsp中有代码片段:

catch (Exception e) {
  out.print("<Grid><IO Result='-1' Message='");
  out.print(e.toString());
  out.print("'/></Grid>");
  out.close();
  throw new Exception("");
}
catch(异常e){
输出。打印(“”);
out.close();
抛出新异常(“”);
}
我希望结果必须是有效的xml

"<Grid><IO Result='-1' Message='Failed to load HSQLDB JDBC driver.'/></Grid>"
“”
但结果是:

"<Grid><IO Result='-1' Message='");  out.print(e.toString());  out.print("'/></Grid>"
“”
请帮我解决这个问题

catch(异常e){
catch (Exception e) {
    %><Grid><IO Result='-1' Message='%><%= e.getMessage() %><%'/></Grid><%
    throw new Exception("");
}
%>

抛出我将稍后离开。

first out.print()中的单个引号未关闭。您能将e.toString()向上移动吗

编辑:以及转义单引号

catch (Exception e) {
 out.print("<Grid><IO Result=\'-1\' Message=\'" + e.toString() + "\'/>");
 out.print("</Grid>");
 out.close();
 throw new Exception("");
}
catch(异常e){
输出。打印(“”);
输出。打印(“”);
out.close();
抛出新异常(“”);
}

这不是问题所在,但这是一个很大的假设,即
e.toString()
将只包含XML属性中有效的字符,特别是使用
分隔的字符。
字符。我将e.toString()替换为“一些文本”。这对@user没有帮助:“这不是问题,但是…”我有点不习惯使用这种JSP,但请尝试在撇号(
\'
)之前使用反斜杠。可能是JSP编译器造成了严重破坏。看看生成的java源代码。我还尝试使用\'。结果是:现在消息属性是“%>我也尝试了这个。消息属性变成了“+e.toString()+”
catch (Exception e) {
 out.print("<Grid><IO Result=\'-1\' Message=\'" + e.toString() + "\'/>");
 out.print("</Grid>");
 out.close();
 throw new Exception("");
}