tossesMedlem sedan aug. 2003190 inlägg Tja!
Jag har ett litet problem med en ifsats i det fantastiskt underbara programmeringsspråket Java -- (I JSP egentligen).
symbol : variable i
[javac] location: class org.apache.jsp.resultat_jsp
[javac] if(i == rslt.getString("Fenkelbranch")){
[javac] ^
[javac] 1 error
Jag har deklarerat i -- String i = "knutsson";
kan jag inte använda mig av i ???
ViktorMedlem sedan aug. 20021 710 inlägg Kan du lägga ut koden där problemet finns, det är lättare att hitta felet då :)
Om du vill kolla om en sträng är lika med en annan sträng så kan du inte köra med ==, det gämför bara adressen för de olika objekten. Du måste använda equals
if(i.equals(rslt.getString("Fenkelbranch"))){
Men jag tror inte det är anledningen till detta felmedelande utan det är något annat.
/Viktor
tossesMedlem sedan aug. 2003190 inlägg <%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%
if(session.getAttribute("pu")!=request.getParameter("p")){
session.setAttribute("pu", request.getParameter("p"));
}
if(request.getParameter("i")==null){
String i = "Knutsson";
} else {
String i = request.getParameter("i");
}
%>
<html>
<head>
<title>Untitled</title>
<style>
A:link { text-decoration: none; color: #ff0000; }
A:visited { text-decoration: none; color: #ff0000; }
A:active { text-decoration: none; color:#0000ff; }
A:hover { text-decoration: none; color: #00ff00; }
</style>
<script language="javascript">
function selectItem(obj,word){
var empty = ''
if (document.adv.vSearchText.value.search(word) != -1){
document.adv.vSearchText.value=document.adv.vSearchText.value.replace('+'+word, empty)
document.adv.vSearchText.value=document.adv.vSearchText.value.replace(word+'+', empty)
document.adv.vSearchText.value=document.adv.vSearchText.value.replace(word, empty)
}
else{
if (document.adv.vSearchText.value==''){
document.adv.vSearchText.value=document.adv.vSearchText.value+word
}
else{
document.adv.vSearchText.value=document.adv.vSearchText.value+'+'+word
}
}
if (document.adv.vSearchText.value.search(word)==-1){
obj.bgColor = '#eeeeee'
}
else{
obj.bgColor = '#A5A5A5'
}
}
</script>
</head>
<body>
<%if(session.getAttribute("pu")=="branch"){
String Fenkelbranch, Kod;
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connection visaConn = DriverManager.getConnection("jdbc:mysql:///steget?user=steget&password=ujujuj");
Statement visaStmt = visaConn.createStatement();
String visaQr = "SELECT sni92.Fenkelbranch, sni92.Kod FROM sni92 GROUP BY sni92.Fenkelbranch";
ResultSet rslt = visaStmt.executeQuery(visaQr);%>
<table border="0" cellpadding="1" cellspacing="0">
<%while(rslt.next()){%>
<tr>
<td>
<%try {
if(i.equals(rslt.getString("Fenkelbranch"))){%>
<a name="<%=rslt.getString("Fenkelbranch")%>"></a>
<img src="pilned.gif"><a style="text-decoration: none; background-color: #DBDBDB" href="resultat.jsp"><%=rslt.getString("Fenkelbranch")%></a>
<%} else {%>
<img src="pil2.gif"><a href="resultat.jsp?i=<%=rslt.getString("Fenkelbranch")%>" target="hoger"><%=rslt.getString("Fenkelbranch")%></a>
<%}
} catch (NullPointerException e) {}%>
</td>
<td></td>
</tr>
<%try{
if(request.getParameter("i").equals(rslt.getString("Fenkelbranch"))){
Connection visaConn2 = DriverManager.getConnection("jdbc:mysql:///steget?user=steget&password=ujujuj");
Statement visaStmt2 = visaConn2.createStatement();
String visaQr2 = "SELECT sni92.Fenkelbranch, sni92.Kod, fo.PEORGNR, fo.REDNAMN, ae.BEN, ae.BEGAD, ae.UADR FROM sni92 INNER JOIN (ae INNER JOIN fo ON ae.PEORGNR = fo.PEORGNR) ON sni92.Kod = ae.NG1 WHERE (((sni92.Fenkelbranch) Like '"+request.getParameter("i")+"'));";
ResultSet rslt2 = visaStmt2.executeQuery(visaQr2);%>
<tr>
<td>
<table bgcolor="#eeeeee" cellpadding="2" cellspacing="0">
<%while(rslt2.next()){%>
<tr>
<td width="35" bgcolor="#ffffff"></td>
<td style="cursor:pointer; cursor:hand" onclick="javascript:selectItem(this,'<%=rslt2.getString("PEORGNR")%>')"><%if(rslt2.getString("BEN")!=null){%><font size="1" color="green"><%=rslt2.getString("BEN")%></font><%}else{%><font size="1" color="green"><%=rslt2.getString("REDNAMN")%></font><%}%></td>
<td><%if(rslt2.getString("BEGAD")!=null){%><font size="1" color="green"><%=rslt2.getString("BEGAD")%></font><%}else{%><font size="1" color="green"><%=rslt2.getString("UADR")%></font><%}%></td>
</tr>
<%}%>
</table>
</td>
</tr>
<%rslt2.close();
visaStmt2.close();
visaConn2.close();
}
} catch (NullPointerException e) {}%>
<%}%>
</table>
<%rslt.close();
visaStmt.close();
visaConn.close();%>
<%}%>
<form method="get" action="carshow.asp" name="adv">
<table border="0" cellpadding="3" cellspacing="0" width="591">
<tr>
<td colspan="2">
<b>Sökning:</b>
<br>
<input type="text" name="vSearchText" size="40" style="width: 405px;" />
</td>
</tr>
</table>
</form>
</body>
</html>
Tyvärr funkar det inte
ViktorMedlem sedan aug. 20021 710 inlägg if(request.getParameter("i")==null){
String i = "Knutsson";
} else {
String i = request.getParameter("i");
}
String i finns bara deklarerad innom blocket else, dvs så fort som du lämnar detta block så finns inte i längre. Skriv såhär istället
String i=null;
if(request.getParameter("i")==null){
i = "Knutsson";
} else {
i = request.getParameter("i");
}
då finns i deklarerad i hela programmet.
/Viktor
tossesMedlem sedan aug. 2003190 inlägg Tack så mycket!!
jag är i inlärningsfasen och behöver mycket stöd och hjälp!
tossesMedlem sedan aug. 2003190 inlägg Olika sätt?!
Finns det något "rätt" sätt att programmera en databasfråga i en annan databasfråga.
Så som jag gjort i exemplet ovan..
val1
val2
val3
val4 osv...
När jag klickar på val2 t.ex. så ska listan se ut som följer:
val1
val2
undermeny till val2
under2 till val2......
val3
val4
ja,jag hoppas ni fattar?!
tossesMedlem sedan aug. 2003190 inlägg Mera ifsats
Jag fattar inte detta med ifsats i jsp! Så här har jag skrivit:
int a;
for(a=5;a<=numberOfColumns;a++){
//------------
//try{
if(request.getParameter("rubrik").equals(rsmd.getColumnName(a))){
out.print("<img src='pilned.gif'>");
out.println("<a href='resultat.jsp?rubrik="+rsmd.getColumnName(a)+"'>"+rsmd.getColumnName(a)+"</a><br>");
} else {
out.println("<a href='resultat.jsp?rubrik="+rsmd.getColumnName(a)+"'>"+rsmd.getColumnName(a)+"</a><br>");
out.print("adas");
}
//}catch (NullPointerException e) {}
//------------
}//forsats
Om getParameter rubrik equals kolumnnamnet så ska pilned.gif + lite till visas
annars så ska bl.a. adas visas
.. inget visas ..
HJÄLP !!
JaarMedlem sedan juli 2001434 inlägg Hmm, frågan är om det inte kastas ett undantag, fast med tanke på att du bortkommenterat catchen så har du nog kollat det...
Hmm, men testa med att vända på steken...
if(rsmd.getColumnName(a).equals(request.getParameter("rubrik")) )
Eftersom du vet att rsmd.getColumnName inte är null iaf (troligen?) så vet du att det inte är ett nullpointer iaf...
Visas något annat på sidan? är det bara det stycket som försvinner?
Testa med en out.println("Test<br>") innan och efter for-blocket... Kanske en i.
kolla också så att numberOfColumns verkligen är större än 5 (for-loopen stegar ju från 5 upp till noOfColumns)