Hello... I have a basic Visualizations project comprised of a JSP and
servlet. The JSP is an HTML form allowing the user to query a DB and
build a datatable and annotated time with input variables. Everything
works fine if the JSP is requested (by browser). The JavaScript will
call the DispatcherServlet and the visualization is displayed as
expected. However, if the user makes a GET request by submitting the
<form action="/DispatcherServlet" method="get"> it calls the servlet
and only the JSON is returned to the browser.
I am not correctly understanding how to manage the interaction of the
controller servlet getting / sending the datatable and javascript
instantiating an instance to get the datatable. I have tried adding
the datatable to the response and using the RequestDispatcher forward
method() but cannot figure it out.
I appreciate any help or suggestions. Thanks.
DispatcherServlet.java
************************************************
public class DispatcherServlet extends DataSourceServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse
resp) throws IOException {
DataSourceRequest dsRequest = null;
try {
dsRequest = new DataSourceRequest(req);
QueryPair query =
DataSourceHelper.splitQuery(dsRequest.getQuery(),
Capabilities.SELECT);
DataTable data = generateDataTable(query.getDataSourceQuery(),
req);
DataTable newData =
DataSourceHelper.applyQuery(query.getCompletionQuery(), data,
dsRequest.getUserLocale());
DataSourceHelper.setServletResponse(newData, dsRequest, resp);
} catch (Exception e) { System.out.println(e); }
}
@Override
public DataTable generateDataTable(Query query, HttpServletRequest
req) {
DataTable data = new DataTable();
// MySQL query ... build data table
// req.getParameter("") is used to build the query
return data;
}
}
index.jsp ************************************************
google.load('visualization', '1', {'packages': ['table',
'annotatedtimeline']});
google.setOnLoadCallback(init);
function init() {
var query = new google.visualization.Query('DispatcherServlet');
query.send(handleQueryResponse);
}
function handleQueryResponse(response) {
if (response.isError()) {
alert('Error in query: ' + response.getMessage() + ' ' +
response.getDetailedMessage());
return;
}
var data = response.getDataTable();
var table = new
google.visualization.Table(document.getElementById('table_div'));
table.draw(data);
}
<form action="DispatcherServlet" method="get"
name="object_select"> ... </form>
<div id="table_div" style="width: 800px;height:300px;"></div>
--
You received this message because you are subscribed to the Google Groups
"Google Visualization API" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-visualization-api?hl=en.