This is an example that demonstartes the use of JAVA pointers in order to handle JSPs genericly with includes...
Please read the comments carefully.
Kind Regards.
Ali R+
fieldVar.java
-------------
package test;
/*
* This is the super class from which all
* the other classes must be extended.
*/
/**
*
* @author Ali R+ SARAL
*/
public class fieldVar {
public static String val="";
}
ScreenInput3.java
------------------
<%@page import="java.util.*,java.io.*, test.*"%>
<%
/*
* This jsp is submitted by the source jsp.
* It takes all the field name/value pairs
* and puts them into a hashmap.
* It puts this hashmap into the pagecontext as
* an attribute. It forwards to the source jsp at the end.
*/
/**
*
* @author Ali R+ SARAL
*/
Map<String, Object> map = new HashMap<String, Object>();//hashmap to hold the JSP map field name/val pairs
for (Enumeration en = request.getParameterNames(); en.hasMoreElements();) {
String name = (String) en.nextElement();
String value = request.getParameter(name);
fieldVar fv= new fieldVar();
fv.val=value;
map.put(name, fv); //put each JSP map field name and val into the hashmap
System.err.println(name + "=" + request.getParameter(name));
}
pageContext.setAttribute("hm", map, pageContext.APPLICATION_SCOPE); //put hashmap into the pageContext
pageContext.forward("GZTKONA03.jsp"); //call the same JSP page
%>
GZTKONA03.jsp
-------------
<%@page import="java.util.*,java.io.*,test.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%
/*
* This is the source jsp. In the initial run, this jsp inits the SEC field and
* ScreenInput3.jsp is submitted. The fields of this jsp are extracted and put into
* a hashmap by ScreenInput3.jsp . ScreenInput3.jsp submits back to this GZTKONA03.jsp .
* In the second and consequent runs, the variable handle hashmap is taken and
* manipulated without using variable names.
*/
/**
*
* @author Ali R+ SARAL
*/
String[] fieldNames = new String[10];
fieldNames[0]="SEC";
fieldVar fv = new fieldVar();
//fv.val="9";
String messageVar="test msg";
HashMap fieldvarMap=new HashMap();
fieldvarMap.put("SEC", fv);
HashMap fieldvalmap= (HashMap)pageContext.getAttribute("hm",4);
if (fieldvalmap!=null)
if (fieldvalmap.size()>0){
System.out.println("hm not null not length 0");
Object[] fields=fieldvalmap.keySet().toArray(); //get all the field names
Object[] values=fieldvalmap.values().toArray(); //get all the field values
System.out.print("\naccess the field vals by sequence");
System.out.println("first field name="+fields[0]);
fieldVar fv2 = (fieldVar) fieldvalmap.get(fields[0]); //get the value without using field name
System.out.println("user entered first field val="+fv2.val);
//fv2.val = "999"; //change the value without using field name
System.out.println("user entered at end fv.val="+fv.val);
System.out.print("\naccess the field vals by names written into the JSP");
System.out.println("first static JSP field name="+fieldNames[0]);
fieldVar fv3 = (fieldVar) fieldvalmap.get(fieldNames[0]); //get the value without using field name
System.out.println("user entered first JSP field val="+fv3.val);
fv3.val = "999"; //change the value without using field name
System.out.println("\nprogrammatically changed to 999 at end fv3.val="+fv.val);
System.out.println("fv.val changed indirectly at end fv.val="+fv.val);
}
else {
System.out.println("GZTKONA03.jsp is opened");
} else fv.val="9"; //init the input field
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Gazete Kontrol Programı Giriş</title>
</head>
<body>
<h1>GAZETE KONTROL PROGRAMI 1. EKRANI</h1>
<form name="myform" action="ScreenInput3.jsp" method="POST">
<!--*S** '1.CIP IRSALIYE GIRISI' /--><br>
1.CIP IRSALIYE GIRISI<br>
<!--*S** '2.CIP ISTEK GIRISI' /--><br>
2.CIP ISTEK GIRISI<br>
<!--*S** '3.STAND IRSALIYE GIRISI'/--><br>
3.STAND IRSALIYE GIRISI<br>
<!--*S** '4.ON OFIS IRSALIYE GIRISI' ///--><br>
4.ON OFIS IRSALIYE GIRISI<br>
<!--*S** 'SECIM:'#SEC--><br>
SECIM: <input type="text" name="SEC" id="SEC" value="<%=fv.val%>"/><br />
<br />
<br />
<br />
<div id='message' ><%=messageVar%> </div>
</form>
</body>
</html>
<%
System.out.println("end of GZTKONA03 screen");
%>
Screens:
---------
First screen:
--------------
Second screen user entry before submit:
-----------------------------------------------
Third screen output:
------------------------
output:
-------
INFO: Grizzly Framework 1.9.31 started in: 0ms - bound to [0.0.0.0:8181]
INFO: end of GZTKONA03 screen
SEVERE: SEC=91
INFO: hm not null not length 0
INFO: access the field vals by sequence
INFO: first field name=SEC
INFO: user entered first field val=91
INFO: user entered at end fv.val=91
INFO: access the field vals by names written into the JSP
INFO: first static JSP field name=SEC
INFO: user entered first JSP field val=91
INFO: programmatically changed to 999 at end fv3.val=999
INFO: fv.val changed indirectly at end fv.val=999
INFO: end of GZTKONA03 screen