作者esn (放空)
看板Web_Design
标题[问题] 读取mysql资料储存到JSP的变数
时间Sat Mar 3 18:30:11 2007
1.我要从course这个table之中读取concept_name
再依照Lvevl与Num这两个栏位存入Concept这个二维阵列里面
2.再从line这个table之中读取preLevel prenNum postLevel postNum四个栏位的资料
分别存入preLevel[]
prenNum[]
postLevel[]
postNum[] 这四个array之中。
=============================================================
1的部分是可以顺利储存的
程式码片段如下
<sql:query var="result">
SELECT * FROM course
</sql:query>
<%
String[][] Concept=new String[10][10];
int L=0;
int N=0;
int levelCount[]=new int [10]; //各层node个数
for(int i=0 ; i<10 ; i++)
{
levelCount[i]=0;
}
%>
<c:forEach items="${result.rows}" var="row" >
<c:set var="Concept" value="${row.Concept_name}"/>
<c:set var="Level" value="${row.Level}"/>
<c:set var="Num" value="${row.Num}"/>
<%
L = Integer.parseInt(pageContext.getAttribute("Level").toString());
N = Integer.parseInt(pageContext.getAttribute("Num").toString());
//ary = ${value1};
Concept[L][N]=pageContext.getAttribute("Concept").toString();
levelCount[L]++;
%>
</c:forEach>
=============================================================
一旦加上2的部分,就会出现错误讯息 HTTP Status 500 -
The server encountered an internal error () that prevented it from
fulfilling this request.
所使用的语法都是相同的,程式码片段如下
<sql:query var="result">
SELECT * FROM line
</sql:query>
<%
int lineSize=10;
int[] preLevel=new int[lineSize];
int[] preNum=new int[lineSize];
int[] postLevel=new int[lineSize];
int[] postNum=new int[lineSize];
int count=0;
%>
<c:forEach items="${result.rows}" var="rowl" >
<c:set var="X1" value="${rowl.preLevel}"/>
<c:set var="Y1" value="${rowl.preNum}"/>
<c:set var="X2" value="${rowl.postLevel}"/>
<c:set var="Y2" value="${rowl.postNum}"/>
<%
preLevel[count]=
Integer.parseInt(pageContext.getAttribute("X1").toString());
preNum[count]=
Integer.parseInt(pageContext.getAttribute("Y1").toString());
postLevel[count]=
Integer.parseInt(pageContext.getAttribute("X2").toString());
postNum[count]=
Integer.parseInt(pageContext.getAttribute("Y2").toString());
count++;
%>
</c:forEach>
=============================================================
我发现把下面程式部分注解掉就不会有错
preLevel[count]=Integer.parseInt(pageContext.getAttribute("X1").toString());
preNum[count]=Integer.parseInt(pageContext.getAttribute("Y1").toString());
postLevel[count]=Integer.parseInt(pageContext.getAttribute("X2").toString());
postNum[count]=Integer.parseInt(pageContext.getAttribute("Y2").toString());
只是上面读取course的部分也有用到相同的语法,却不会有错误。
不晓得是怎样的原因造成的?
该如何解决?
感谢!
ps.所使用的mysql及tomcat的版本都是「JSP2.0技术手册」书上所附的版本
--
太多不熟识蠍子的人
总是只看到蠍子坚硬的外壳
强力的双螯以及尖锐的尾针
却往往忽略了,蠍子脆弱的本质
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.135.11.132