我要实现的功能如下:
用get向一个jsp页面一个url过去,目标页面获取到url后,页面如果存在表单,调用ParserForm.java中的方法将form表单解析出来,然后返回一个NodeList(数组).问题出现了。
<%!
String url="";
String sname="";
String code="gbk";//request.getParameter("code");
String src="";
%>
<%
url=request.getParameter("url");
sname=request.getParameter("sname");
Parser parser = new Parser(url);//调用htmlParser的解析方法
parser.setEncoding(parser.getEncoding());
NodeList form_list = parser.extractAllNodesThatMatch(new NodeClassFilter(FormTag.class));//过滤出Form节点放在NodeList里面 for(int i=0;i<form_list.size();i++){
Node node=form_list.elementAt(i);
src=node.toHtml();//将各个form节点转换成html格式(String类型) %>
<tr>
<td width="113"> <%=src%></td>
<td width="187"><textarea name=""><%=sname%></textarea></td>
<td width="68"><a href="aa" target="formgui" class="STYLE1">提取该表单</a></td>
</tr>
<%
}
%>
</table>
问题出在红色字体中间,这段代码没有语法错误,包也引入了,可是jsp页面运行就出现下列错误:
org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/frc/getsrc.jsp at line 5350: String code="gbk";//request.getParameter("code");
51: String src="";
52: %>
53: <%
54: url=request.getParameter("url");
55: sname=request.getParameter("sname");
56: src="";但是为了测试,我把后面的代码都删掉,只保留了以下一段:
<%!
String url="";
String sname="";
String code="gbk";//request.getParameter("code");
String src=""; %>
<% url=request.getParameter("url");
sname=request.getParameter("sname");
src=sname;//我让src=url
%>
<tr>
<td width="113"> <%=src%></td>
<td width="187"><textarea name=""><%=sname%></textarea></td>
<td width="68"><a href="aa" target="formgui" class="STYLE1">提取该表单</a></td>
</tr>
发现错误没有了,页面上显示了接收到的url。我不知道是什么问题,request的时候显然能接收到,但是只要加入下面的“Parser parser = new Parser(url);”也就是我的解析方法就会出错,不知道是什么问题呢?
即使不加解析的方法,一些别的方法都不行,不如对url进行一些处理等等。请求各位给予指点,非常感谢!!!
用get向一个jsp页面一个url过去,目标页面获取到url后,页面如果存在表单,调用ParserForm.java中的方法将form表单解析出来,然后返回一个NodeList(数组).问题出现了。
<%!
String url="";
String sname="";
String code="gbk";//request.getParameter("code");
String src="";
%>
<%
url=request.getParameter("url");
sname=request.getParameter("sname");
Parser parser = new Parser(url);//调用htmlParser的解析方法
parser.setEncoding(parser.getEncoding());
NodeList form_list = parser.extractAllNodesThatMatch(new NodeClassFilter(FormTag.class));//过滤出Form节点放在NodeList里面 for(int i=0;i<form_list.size();i++){
Node node=form_list.elementAt(i);
src=node.toHtml();//将各个form节点转换成html格式(String类型) %>
<tr>
<td width="113"> <%=src%></td>
<td width="187"><textarea name=""><%=sname%></textarea></td>
<td width="68"><a href="aa" target="formgui" class="STYLE1">提取该表单</a></td>
</tr>
<%
}
%>
</table>
问题出在红色字体中间,这段代码没有语法错误,包也引入了,可是jsp页面运行就出现下列错误:
org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/frc/getsrc.jsp at line 5350: String code="gbk";//request.getParameter("code");
51: String src="";
52: %>
53: <%
54: url=request.getParameter("url");
55: sname=request.getParameter("sname");
56: src="";但是为了测试,我把后面的代码都删掉,只保留了以下一段:
<%!
String url="";
String sname="";
String code="gbk";//request.getParameter("code");
String src=""; %>
<% url=request.getParameter("url");
sname=request.getParameter("sname");
src=sname;//我让src=url
%>
<tr>
<td width="113"> <%=src%></td>
<td width="187"><textarea name=""><%=sname%></textarea></td>
<td width="68"><a href="aa" target="formgui" class="STYLE1">提取该表单</a></td>
</tr>
发现错误没有了,页面上显示了接收到的url。我不知道是什么问题,request的时候显然能接收到,但是只要加入下面的“Parser parser = new Parser(url);”也就是我的解析方法就会出错,不知道是什么问题呢?
即使不加解析的方法,一些别的方法都不行,不如对url进行一些处理等等。请求各位给予指点,非常感谢!!!
String url="";
String sname="";
String code="gbk";//request.getParameter("code");
String src=""; %>这里!号干吗用的?
4楼:
类级别声明另:
LZ:
Parser parser = new Parser(url);//调用htmlParser的解析方法
parser.setEncoding(parser.getEncoding());
NodeList form_list = parser.extractAllNodesThatMatch(new NodeClassFilter(FormTag.class));//过滤出Form节点放在NodeList里面for(int i=0;i<form_list.size();i++){
Node node=form_list.elementAt(i);
src=node.toHtml();//将各个form节点转换成html格式(String类型)这段里面的某一行出现编译错误,请细查或给出import列表
<%@ page language="java" import="java.util.*,org.htmlparser.lexer.Lexer,getFormInf.*,HttpReq.*,org.htmlparser.util.NodeList,org.htmlparser.tags.*,org.htmlparser.Node,org.htmlparser.filters.*,org.htmlparser.*" pageEncoding="gbk"%>
org.htmlparser.lexer.Lexer
getFormInf.*
HttpReq.*
org.htmlparser.util.NodeList
org.htmlparser.tags.*
org.htmlparser.Node
org.htmlparser.filters.*
org.htmlparser.*LZ使用的是TomCat是吧?
应该是说53行的<%以下代码段有问题,建议采取2L的提议,删除一行试验一行另:
如使用eclipse,并加挂了tomcat插件,可考虑设置debug点加以跟踪
把异常错误粘贴出来啊!!!
这一句就出现了那个错误,但是这个地方没有异常啊,也没有什么错误啊
System.out.println(parser.extractAllNodesThatMatch(new NodeClassFilter(FormTag.class)));输出到后台看一下