yooniquely
asked on
Java Servlet - getParameter returns null
I am trying to get the string reportName but it is always null. The following code is inside my function that is called from doGet. What could be wrong? Please help. Thanks.
String reportName = request.getParameter("Repo rtNames");
out.println(reportName);
if ( reportName == null) {
toolbar.addElement(new Button().addElement("Selec t").addAtt ribute("on Click", "(confirm('Please select Report'))"));
}
else {
toolbar.addElement(new Button().addElement("View" ).addAttri bute("onCl ick", "window.open('/ne/report/r eports.jsp ', '_blank', 'width=1200, height=750, resizable=yes, scrollbars=yes, status=no, toolbar=no'); return false;"));
}
String reportName = request.getParameter("Repo
out.println(reportName);
if ( reportName == null) {
toolbar.addElement(new Button().addElement("Selec
}
else {
toolbar.addElement(new Button().addElement("View"
}
while using doget method
the value should be from url only. hidden or text field elements will not work
the value should be from url only. hidden or text field elements will not work
your code should be some thing like this while working with doGet method of servlets
<script>
function loadpage()
{
String url="yourUrl?ReportNames=" +document. yourformna me.ReportN ames.value ;
}
</script>
<body>
<form name=yourformname>
<input type=text name=.ReportNames>
<input type=button name=text value="Load Page" onClick=loadpage()>
</form>
</body>
<script>
function loadpage()
{
String url="yourUrl?ReportNames="
}
</script>
<body>
<form name=yourformname>
<input type=text name=.ReportNames>
<input type=button name=text value="Load Page" onClick=loadpage()>
</form>
</body>
your code should be some thing like this while working with doGet method of servlets
<script>
function loadpage()
{
String url="yourUrl?ReportNames=" +document. yourformna me.ReportN ames.value ;
document.location.href=url ;
}
</script>
<body>
<form name=yourformname>
<input type=text name=.ReportNames>
<input type=button name=text value="Load Page" onClick=loadpage()>
</form>
</body>
<script>
function loadpage()
{
String url="yourUrl?ReportNames="
document.location.href=url
}
</script>
<body>
<form name=yourformname>
<input type=text name=.ReportNames>
<input type=button name=text value="Load Page" onClick=loadpage()>
</form>
</body>
ASKER
sorry i am a beginner at java servlets and i dont understand how that'll work...(i'm working with someone else's code)
my doPost function:
PrintWriter out = response.getWriter();
response.setContentType("t ext/html") ;
response.setHeader("pragma ", "no-cache");
response.setHeader("Cache- Control", "no-cache");
try
{
LEAPFramework lf = ServletGlue.getLeap(this, request);
// STEP 1: Extract HTTP request parameters...
// op
/*
String op = request.getParameter("op") ;
if (op == null)
op = "load";*/
NetworkElementPK nePK = getNEPK(lf, request);
String cat = request.getParameter("cat" );
String type = request.getParameter("type ");
// STEP 2a: HTML head...
Head head = new Head();
head.addElement(new Link().setRel("stylesheet" ).setType( "text/css" ).setHref( "/servlet/ ThemeServl et?themeCo lor=9966cc "));
// STEP 2b: HTML body...
Body body = new Body();
body.setStyle("margin: 0;");
TreeWidgetContentProvider callback = new MyCallback(lf, request);
TreeWidget treeWidget = new TreeWidget(request, new String[] { "root", "nePK" }, callback);
treeWidget.setIcons(new String[] {null, "/i/ne.gif" });
Element leftSide = new StringElement(treeWidget.t oString()) ;
Element rightSide = new StringElement(" ");
{
ReportNEServlet ns = new ReportNEServlet(); // this class contains the function above
rightSide = ns.doOpNetwork(lf, request, response, out); // which is this one.
}
// inventory perspective ops...
Table table = new Table().setBorder(0).setCe llPadding( "6pt").set CellSpacin g(0).setWi dth("100%" ).setHeigh t("100%");
TR tr = new TR().setVAlign("top");
tr.addElement(new TD(new Div().addElement(leftSide) .setStyle( "width: 240px")).setStyle("width: 240px; background-color: #eeeeee;"));
tr.addElement(new TD(rightSide));
table.addElement(tr);
body.addElement(table);
// final assembly...!
Html html = new Html().addElement(head).ad dElement(b ody);
ServletGlue.setPrettyPrint (html, true);
html.output(out);
}
catch (Exception e)
{
out.println("<pre>");
e.printStackTrace(out);
out.println("</pre>");
}
my doPost function:
PrintWriter out = response.getWriter();
response.setContentType("t
response.setHeader("pragma
response.setHeader("Cache-
try
{
LEAPFramework lf = ServletGlue.getLeap(this, request);
// STEP 1: Extract HTTP request parameters...
// op
/*
String op = request.getParameter("op")
if (op == null)
op = "load";*/
NetworkElementPK nePK = getNEPK(lf, request);
String cat = request.getParameter("cat"
String type = request.getParameter("type
// STEP 2a: HTML head...
Head head = new Head();
head.addElement(new Link().setRel("stylesheet"
// STEP 2b: HTML body...
Body body = new Body();
body.setStyle("margin: 0;");
TreeWidgetContentProvider callback = new MyCallback(lf, request);
TreeWidget treeWidget = new TreeWidget(request, new String[] { "root", "nePK" }, callback);
treeWidget.setIcons(new String[] {null, "/i/ne.gif" });
Element leftSide = new StringElement(treeWidget.t
Element rightSide = new StringElement(" ");
{
ReportNEServlet ns = new ReportNEServlet(); // this class contains the function above
rightSide = ns.doOpNetwork(lf, request, response, out); // which is this one.
}
// inventory perspective ops...
Table table = new Table().setBorder(0).setCe
TR tr = new TR().setVAlign("top");
tr.addElement(new TD(new Div().addElement(leftSide)
tr.addElement(new TD(rightSide));
table.addElement(tr);
body.addElement(table);
// final assembly...!
Html html = new Html().addElement(head).ad
ServletGlue.setPrettyPrint
html.output(out);
}
catch (Exception e)
{
out.println("<pre>");
e.printStackTrace(out);
out.println("</pre>");
}
you said it is problem with doGet
can u post doGet code??
can u post doGet code??
ASKER
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
try
{
response.setContentType("t ext/html") ;
response.setHeader("pragma ", "no-cache");
response.setHeader("Cache- Control", "no-cache");
LEAPFramework lf = ServletGlue.getLeap(this, request);
// STEP 1: Extract HTTP request parameters...
// op
String op = request.getParameter("op") ;
NetworkElementPK nePK = getNEPK(lf, request);
String type = request.getParameter("type ");
// STEP 2: Render HTML...
// STEP 2a: HTML head...
Head head = new Head();
head.addElement(new Link().setRel("stylesheet" ).setType( "text/css" ).setHref( "/servlet/ ThemeServl et?themeCo lor=9966cc "));
// STEP 2b: HTML body...
Body body = new Body();
body.setStyle("margin: 0;");
TreeWidgetContentProvider callback = new MyCallback(lf, request);
TreeWidget treeWidget = new TreeWidget(request, new String[] { "root", "nePK" }, callback);
Element leftSide = new StringElement(treeWidget.t oString()) ;
Element rightSide = new StringElement("op: " + op);
Table table = new Table().setBorder(0).setCe llPadding( "6pt").set CellSpacin g(0).setWi dth("100%" ).setHeigh t("100%");
TR tr = new TR().setVAlign("top");
tr.addElement(new TD(new Div().addElement(leftSide) .setStyle( "width: 200px")).setStyle("width: 200px; background-color: #eeeeee;"));
tr.addElement(new TD(rightSide));
table.addElement(tr);
body.addElement(table);
// final assembly...!
Html html = new Html().addElement(head).ad dElement(b ody);
ServletGlue.setPrettyPrint (html, true);
html.output(out);
}
catch (Exception e)
{
out.println("<pre>");
e.printStackTrace(out);
out.println("</pre>");
}
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
try
{
response.setContentType("t
response.setHeader("pragma
response.setHeader("Cache-
LEAPFramework lf = ServletGlue.getLeap(this, request);
// STEP 1: Extract HTTP request parameters...
// op
String op = request.getParameter("op")
NetworkElementPK nePK = getNEPK(lf, request);
String type = request.getParameter("type
// STEP 2: Render HTML...
// STEP 2a: HTML head...
Head head = new Head();
head.addElement(new Link().setRel("stylesheet"
// STEP 2b: HTML body...
Body body = new Body();
body.setStyle("margin: 0;");
TreeWidgetContentProvider callback = new MyCallback(lf, request);
TreeWidget treeWidget = new TreeWidget(request, new String[] { "root", "nePK" }, callback);
Element leftSide = new StringElement(treeWidget.t
Element rightSide = new StringElement("op: " + op);
Table table = new Table().setBorder(0).setCe
TR tr = new TR().setVAlign("top");
tr.addElement(new TD(new Div().addElement(leftSide)
tr.addElement(new TD(rightSide));
table.addElement(tr);
body.addElement(table);
// final assembly...!
Html html = new Html().addElement(head).ad
ServletGlue.setPrettyPrint
html.output(out);
}
catch (Exception e)
{
out.println("<pre>");
e.printStackTrace(out);
out.println("</pre>");
}
whare is
request.getParameter("Repo rtNames"); related code??
request.getParameter("Repo
ASKER
oh, sorry that code is inside this function:
static Element doOpNetwork(LEAPFramework lf, HttpServletRequest request, HttpServletResponse response, PrintWriter out)
throws Exception
{
// http request parameters...
List list = new ArrayList();
String[] pks = request.getParameterValues ("nePK");
if (pks != null)
list = Arrays.asList(pks);
// these are the checkboxes
Script script = new Script();
script.addElement("functio n toggle(checked) {");
script.addElement(" var form = document.forms['form'];");
script.addElement(" for (var i = 0; i < form.elements.length; ++i) {");
script.addElement(" if (form.elements[i].type == 'checkbox')");
script.addElement(" form.elements[i].checked = checked;");
script.addElement(" }");
script.addElement("}");
Map theMap = new LinkedHashMap();
Set detailsSet = lf.getNEManager().getAllNE s();
for (Iterator neIter = detailsSet.iterator(); neIter.hasNext();)
{
NetworkElementDetails neDetails = (NetworkElementDetails) neIter.next();
Map row = new LinkedHashMap();
String neType = neDetails.getType();
String neName = neDetails.getName();
// neName
StringElement se = new StringElement();
se.addElement(new IMG("/default/images/tree/ ne.gif"));
se.addElement(new BR());
se.addElement(neName);
row.put("NE Name", se);
// neType
row.put("NE Type", neType);
theMap.put(neDetails.getNE PK().toStr ing(), row);
}
Div toolbar = new Div();
toolbar.setClass("toolbar" );
toolbar.addElement(new Div().addElement("<SELECT NAME=\"ReportNames\"> <OPTION VALUE=\"none\">Choose Report <OPTION VALUE=\"Hardware\">Hardwar e <OPTION VALUE=\"License\">License< /SELECT>") );
String reportName = request.getParameter("Repo rtNames");
out.println(reportName);
if ( getReportName() == null) {
toolbar.addElement(new Button().addElement("Selec t").addAtt ribute("on Click", "(confirm('Please select Report'))"));
}
else {
toolbar.addElement(new Button().addElement("View" ).addAttri bute("onCl ick", "window.open('/ne/report/r eports.jsp ', '_blank', 'width=1200, height=750, resizable=yes, scrollbars=yes, status=no, toolbar=no'); return false;"));
}
Form form = new Form().setAction("?").setM ethod("get ");
form.setName("form");
form.addElement(new Input("hidden", "perspective", "network"));
form.addElement(new Input ("hidden", "ReportNames", request.getParameter("Repo rtNames")) );
form.addElement(new Input("hidden", "op", ""));
form.addElement(new Div().addElement(toolbar)) ;
form.addElement(new Div(" "));
GridWidget gridWidget = new GridWidget(request, "nePK", theMap);
form.addElement(gridWidget .toString( ));
form.addElement(new Div(" "));
//form.addElement(new Div().addElement(toolbar)) ;
StringElement result = new StringElement();
result.addElement(script);
result.addElement(new Div(" "));
result.addElement(form);
return result;
}
could you also tell me how to get the values for checkboxes and working with the buttons? Thanks!!!
static Element doOpNetwork(LEAPFramework lf, HttpServletRequest request, HttpServletResponse response, PrintWriter out)
throws Exception
{
// http request parameters...
List list = new ArrayList();
String[] pks = request.getParameterValues
if (pks != null)
list = Arrays.asList(pks);
// these are the checkboxes
Script script = new Script();
script.addElement("functio
script.addElement(" var form = document.forms['form'];");
script.addElement(" for (var i = 0; i < form.elements.length; ++i) {");
script.addElement(" if (form.elements[i].type == 'checkbox')");
script.addElement(" form.elements[i].checked = checked;");
script.addElement(" }");
script.addElement("}");
Map theMap = new LinkedHashMap();
Set detailsSet = lf.getNEManager().getAllNE
for (Iterator neIter = detailsSet.iterator(); neIter.hasNext();)
{
NetworkElementDetails neDetails = (NetworkElementDetails) neIter.next();
Map row = new LinkedHashMap();
String neType = neDetails.getType();
String neName = neDetails.getName();
// neName
StringElement se = new StringElement();
se.addElement(new IMG("/default/images/tree/
se.addElement(new BR());
se.addElement(neName);
row.put("NE Name", se);
// neType
row.put("NE Type", neType);
theMap.put(neDetails.getNE
}
Div toolbar = new Div();
toolbar.setClass("toolbar"
toolbar.addElement(new Div().addElement("<SELECT NAME=\"ReportNames\"> <OPTION VALUE=\"none\">Choose Report <OPTION VALUE=\"Hardware\">Hardwar
String reportName = request.getParameter("Repo
out.println(reportName);
if ( getReportName() == null) {
toolbar.addElement(new Button().addElement("Selec
}
else {
toolbar.addElement(new Button().addElement("View"
}
Form form = new Form().setAction("?").setM
form.setName("form");
form.addElement(new Input("hidden", "perspective", "network"));
form.addElement(new Input ("hidden", "ReportNames", request.getParameter("Repo
form.addElement(new Input("hidden", "op", ""));
form.addElement(new Div().addElement(toolbar))
form.addElement(new Div(" "));
GridWidget gridWidget = new GridWidget(request, "nePK", theMap);
form.addElement(gridWidget
form.addElement(new Div(" "));
//form.addElement(new Div().addElement(toolbar))
StringElement result = new StringElement();
result.addElement(script);
result.addElement(new Div(" "));
result.addElement(form);
return result;
}
could you also tell me how to get the values for checkboxes and working with the buttons? Thanks!!!
are u calling this method doOpNetwork in doPost also??
And actually my earlier style of program should work for doGet method
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
when i tested it, it returned null... how do i make sure that i pass in the parameter? thanks so much.
ASKER
also what should i put in the yourUrl? because it uses jsp... when i load the page it says index.jsp?tab=reports
String url="yourUrl?ReportNames=" +document. yourformna me.ReportN ames.value ;
document.location.href=url ;
String url="yourUrl?ReportNames="
document.location.href=url
ASKER
nm it is not index.jsp.
but yeah, it still returns null....
but yeah, it still returns null....
String url="index.jsp?tab=reports &ReportNam es="+docum ent.yourfo rmname.Rep ortNames.v alue;
document.location.href=url ;
document.location.href=url
can u post the modified code and also let me know the names of page1 and page2, what is page1 and what is page 2 in terms of JSP and/or servlet
How is the servlet getting invoked? Are you clicking a button on another web page?
It would help to see the code from the page that invokes the servlet. That would tell us what parameters should be passed to the servlet, and hopefully find out why the one you are expecting is null.
It would help to see the code from the page that invokes the servlet. That would tell us what parameters should be passed to the servlet, and hopefully find out why the one you are expecting is null.
ASKER
inside index.jsp
if (tab.equals("reports"))
{
frameLeftWidth="0";
leftFrame="about:blank";
rightFrame="/servlet/Repor tServlet";
}
index.jsp?tab=reports
if (tab.equals("reports"))
{
frameLeftWidth="0";
leftFrame="about:blank";
rightFrame="/servlet/Repor
}
index.jsp?tab=reports
re u calling this method doOpNetwork in doPost also??
ASKER
doPost in first servlet.
I am sorry to say that, I am really confused
I suggest you to place ur entire code of servlet and jsp in some public domain or here. Then I can try to help you
Regards
Sudhakar
I suggest you to place ur entire code of servlet and jsp in some public domain or here. Then I can try to help you
Regards
Sudhakar
ASKER
I am too...can i email you? thanks a lot.
ASKER
actually it was just an html error...i needed a <form> in front of the <select> stuff..thanks anyway. printline statements helped.
1. ReportNames should be case sensitive. means you need to send the parameter name with this only
2. should be either text field or hiden element or url parameter. check how u r passing?