如何用JSP来实现这一小段ASP功能,很简单,可是我写的总出错

herofour444 2006-12-26 04:03:44
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<%
Response.ContentType="text/xml";
var xmlString='<?xml version="1.0" encoding="UTF-8"?>';
xmlString+='<root>';
if (Request.QueryString("pId")=="0")
{
xmlString+='<node id="1" hasChildren="1">测试类别1</node>';
xmlString+='<node id="4" hasChildren="0">测试类别4</node>';
}
else if (Request.QueryString("pId")=="1")
{
xmlString+='<node id="2" hasChildren="1">测试类别2</node>';
xmlString+='<node id="5" hasChildren="0">测试类别5</node>';
}
else if (Request.QueryString("pId")=="2")
{
xmlString+='<node id="3" hasChildren="0">测试类别3</node>';
}
xmlString+='</root>';
Response.write(xmlString);
%>
...全文
417 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
denghan 2006-12-28
  • 打赏
  • 举报
回复
是JSP页错,还是取服务端返回结果的javascript错?

以前我也遇到过类似的ajax的问题,原因就是JSP页的
..
%>
<%
..
在编译成class时,会出现换行。
所以建议,..%><%.. 写在一行
shine333 2006-12-27
  • 打赏
  • 举报
回复
我的方法你试了没有
xiaoyaowp 2006-12-27
  • 打赏
  • 举报
回复
BS

........................
很简单,可是我写的总出错
..............

说明啥啊?
bulaohe 2006-12-27
  • 打赏
  • 举报
回复
Request.QueryString("pId").equals("2");
bulaohe 2006-12-27
  • 打赏
  • 举报
回复
你这样试试看::::

Request.QueryString("pId").toString().equals("2");
bulaohe 2006-12-27
  • 打赏
  • 举报
回复
Request.QueryString("pId")=="2")

这个比较也许有问题.
QueryString()返回的是Sting类型,你这样写试试
fashchina 2006-12-27
  • 打赏
  • 举报
回复
<%@ page contentType="text/xml"%>
<%
StringBuffer xmlString=new StringBuffer();
xmlString.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
xmlString.append("<root>");
String s=request.getParameter("pId");
if("0".equals(s)){
xmlString.append("<node id=\"1\" hasChildren=\"1\">测试类别1</node>\r\n");
xmlString.append("<node id=\"4\" hasChildren=\"0\">测试类别4</node>\r\n");
}else if ("1".equals(s)){
xmlString.append("<node id=\"2\" hasChildren=\"1\">测试类别2</node>\r\n");
xmlString.append("<node id=\"5\" hasChildren=\"0\">测试类别5</node>\r\n");
}else if ("2".equals(s)){
xmlString.append("<node id=\"3\" hasChildren=\"0\">测试类别3</node>\r\n");
}
xmlString.append("</root>");
out.print(xmlString);
%>
herofour444 2006-12-27
  • 打赏
  • 举报
回复
没有啊。等你帮忙呢
dreamover 2006-12-27
  • 打赏
  • 举报
回复
不知道你服务器配好了没有
herofour444 2006-12-27
  • 打赏
  • 举报
回复
在浏览器中输入也不行,郁闷阿
herofour444 2006-12-26
  • 打赏
  • 举报
回复
还是不行,值传不会去
dreamover 2006-12-26
  • 打赏
  • 举报
回复
你先在浏览器里把网址输入进去,看看能不能得到正确结果
herofour444 2006-12-26
  • 打赏
  • 举报
回复
dreamover(梦醒了
我以前的写法跟你说的一样,可是在回调processRequest中接收传回来的responseXML,
显示alert(lll);
总是空的
是在Request.send中调用刚才的jsp的


var processRequest=function(obj)
{
var lll = obj.responseXML.getElementsByTagName("root")[0];
alert(lll);
TreeMenu.addChildren(_parentId,obj.responseXML);
}
Request.send(this._url,"",processRequest,_parentId+"");
shine333 2006-12-26
  • 打赏
  • 举报
回复
不是的,由于jsp严格遵照行数对应,你jsp有一个换行,他就帮你输出一个换行。
比如楼上的
<%@ page language="Java" contentType="text/xml" %>
<%

String xmlString="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
xmlString+="<root>";
if (""request.getParameter("pId"))
{
xmlString+="<node id=\"1\" hasChildren=\"1\">测试类别1</node>";
xmlString+="<node id=\"4\" hasChildren=\"0\">测试类别4</node>";
}
xmlString+="</root>";
out.print(xmlString);
%>

就会导致jsp

out.write('\r'); //对应
out.write('\n'); //第一行的换行


String xmlString="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
xmlString+="<root>";
if (""request.getParameter("pId"))
{
xmlString+="<node id=\"1\" hasChildren=\"1\">测试类别1</node>";
xmlString+="<node id=\"4\" hasChildren=\"0\">测试类别4</node>";
}
xmlString+="</root>";
out.print(xmlString);

虽然JSP"正确地"输出了你要的xml的内容,但是头上多了空行,所以在客户端解析的时候报错,
因为xml的<?xml?>必须位于第一行第一字节

或者你
<%@ page language="Java" contentType="text/xml" %><% // Keep in the first line

String xmlString="<?xml version="1.0" encoding="UTF-8"?>";
....
yangnxx 2006-12-26
  • 打赏
  • 举报
回复
<%@ page import="java.io.*,javax.naming.*,java.text.*,"%>
<%@ page LANGUAGE="JAVA"%>
<%

String xmlString='<?xml version="1.0" encoding="UTF-8"?>';
xmlString+="<root>";
String pID = Request.getParameter("pId");
if (pID.equals("0"))
{
xmlString+="<node id=\"1\" hasChildren=\"1\">测试类别1</node>";
xmlString+="<node id=\"4\" hasChildren=\"0\">测试类别4</node>";
}
else if (pID.equals.equals("1"))
{
xmlString+="<node id=\"2\" hasChildren=\"1\">测试类别2</node>";
xmlString+="<node id=\"5\" hasChildren=\"0\">测试类别5</node>";
}
else if (pID.equals.equals("2"))
{
xmlString+="<node id=\"3\" hasChildren=\"0\">测试类别3</node>";
}
xmlString+="</root>";
System.out.print(xmlString);
%>
shine333 2006-12-26
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="UTF-8"?>
<%@ page language="Java" contentType="text/xml" %>

<root>
<% if ("0".equals(request.getParameter("pId"))) { %>
<node id="1" hasChildren="1">测试类别1</node>
<node id="4" hasChildren="0">测试类别4</node>
<% } else if ("1".equals(request.getParameter("pId"))) { %>
<node id="2" hasChildren="1">测试类别2</node>
<node id="5" hasChildren="0">测试类别5</node>
<% } else { %>
<node id="3" hasChildren="0">测试类别3</node>
<% } %>
</root>
herofour444 2006-12-26
  • 打赏
  • 举报
回复
现在就不知道怎么返回xmlString阿
在jsp中response.write(xmlString);
不好用阿
dreamover 2006-12-26
  • 打赏
  • 举报
回复
<%@ page language="Java" contentType="text/xml" %>
<%

String xmlString="<?xml version="1.0" encoding="UTF-8"?>";
xmlString+="<root>";
if (request.getParameter("pId").equals("0"))
{
xmlString+="<node id=\"1\" hasChildren=\"1\">测试类别1</node>";
xmlString+="<node id=\"4\" hasChildren=\"0\">测试类别4</node>";
}
xmlString+="</root>";
out.print(xmlString);
%>
shine333 2006-12-26
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="UTF-8"?>

这个务必放在jsp第一行第一字节
herofour444 2006-12-26
  • 打赏
  • 举报
回复
JSP中不支持response的writer方法

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧