Hello All,
I am trying to retreive a list from the session and display that list
on a jsp, but I am not entirely sure of the correct syntax for reading the
list. Any help would be appreciated. Here is the code that I am cuurently
using:
Action class:
package round;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import example.ExampleSupport;
public class GetListAction extends ExampleSupport{
public String getList() throws SQLException {
Round round = new Round();
List<Round> eventList = new ArrayList<Round>();
Map session = (Map)ActionContext.getContext().get("session");
String userName = String.valueOf(session.get("userName"));
try {
Statement stmt;
Class.forName("com.mysql.jdbc.Driver");
String url =
"jdbc:mysql://localhost:3306/Nexus";
String sql = "Select * " +
"FROM round WHERE userName='" + userName + "'";
Connection con =
DriverManager.getConnection(
url,"root", "*****");
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
round.setMatchID(rs.getInt(1));
round.setEventID(rs.getInt(2));
round.setUserName(rs.getString(3));
round.setRound(rs.getInt(4));
round.setPersona(rs.getString(5));
round.setResult(rs.getInt(6));
round.setOpponent(rs.getString(7));
eventList.add(round);
}
con.close();
}catch( Exception e ) {
e.printStackTrace();
}
session.put("eventList", eventList);
System.err.println("Session objects: " + session.get("eventList"));
return SUCCESS;
}
}
Query is successful, and System.err.println displays: Session objects:
[EMAIL PROTECTED]
JSP:
<[EMAIL PROTECTED] prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Welcome to Nexus!!!</title>
<LINK rel="stylesheet" type="text/css" href="../css/styles.css">
</head>
<body background="../images/containment.jpg">
<table width="100%">
<tr>
<td width="10%" rowspan="4">
<s:include value="../includes/menu.jsp"/>
</td>
<td>
<table border="0" width="90%" align="center">
<tr>
<td align="center">
<h3>
Welcome to the Nexus, <s:property
value="#session.userInfo.firstName"/>
</h3>
</td>
</tr>
<tr>
<td align="center">
<table class="round">
<tr>
<th><font color="white">Match ID</font></th>
<th><font color="white">Event ID</font></th>
<th><font color="white">Persona Used</font></th>
<th><font color="white">Opponent</font></th>
<th><font color="white">Result</font></th>
<th><font color="white">Round</font></th>
</tr>
<tr>
<s:iterator value="#eventList.round" status="rowstatus">
<tr>
<s:if test="#rowstatus.odd == true">
<td style="background: grey">
<s:property value="matchID" />
<s:property value="eventID" />
<s:property value="persona" />
<s:property value="opponent" />
<s:property value="result" />
<s:property value="round" />
</s:if>
<s:else>
<s:property value="matchID" />
<s:property value="eventID" />
<s:property value="persona" />
<s:property value="opponent" />
<s:property value="result" />
<s:property value="round" />
</s:else>
</tr>
</s:iterator>
</tr>
</table>
</td>
</tr>
</table>
</table>
</body>
</html>
Displays users first name, but not the list.
Struts2 mapping:
<action name="viewTournaments" class="round.GetListAction"
method="getList">
<result
name="success">/jsp/tournament/tournamentList.jsp</result>
<interceptor-ref name="basicStack"/>
</action>
Thanks in advance for the help,
Chriss