This week's book giveaway is in the Agile and other Processes forum. We're giving away four copies of The Mikado Method and have Ola Ellnestam and Daniel Brolund on-line! See this thread for details.
--If you specify a "type" attribute in <jsp:useBean>, you can set properties in <jsp:setProperty> ONLY on the properties of the type, but NOT ON properties that exist only in the actual "class" type. So, for the below example, I should be able to set name property but not the empID becuase that is the property of the actual class...Could somebody clarify this for sure ? (I took this example from another post because this was exactly what I needed..Thanks Nithya..)
Abstract class - Person
package myclasses;
public abstract class Person{ private String name ;
public Person(){ System.out.println("Person Constructor"); }
public void setName(String name){ this.name= name ; }
public String getName(){ return name; } }
Concrete subclass - Employee
package myclasses;
public class Employee extends Person{ private int empId;
public Employee(){ System.out.println("Employee Constructor"); }
public void setEmpId(int empId){ this.empId = empId; }
public class EmployeeServlet extends HttpServlet{ public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException{ Employee e =new Employee(); req.setAttribute("employee", e); RequestDispatcher rd = getServletContext().getRequestDispatcher("/EmployeeJsp.jsp"); rd.forward(req,res); } }
The JSP thats called EmployeeJsp <html> <body> Testing the forwarded page <jsp:useBean id="employee" type="myclasses.Person" scope="request"/> <jsp:setProperty name="employee" property="name" value="Nithya"/> <jsp:setProperty name="employee" property="empId" value="1"/> The name is ${employee.name} The empId is ${employee.empId} </body> </html>