Hans
Hans

Reputation: 23

Using jsp:setProperty to set one bean in other bean

I would like to know how to use jsp:setProperty in the following scenario. Here is a simple example of two java classes.

public class MyExample {
  private MyName myNameExample = new MyName();

  public MyExample() {}

  public MyName getMyNameExample() {
    return myNameExample;
  }
  public void setMyNameExample(MyName setTo) {
    myNameExample = setTo;
  }
}

public class MyName {
  private String firstName;

  public MyName() {}


  public String getFirstName() {
    return firstName;
  }
  public String setFirstName(String setTo) {
    firstName = setTo;
  }
}

I was trying to use something like:

<jsp:useBean id="example" class="MyExample" scope="page"/>
<jsp:setProperty name="example" property="????" value="aFirstName"/>

The important part here is that I want to reference the MyName object from within MyExample. Therefore, creating a bean to directly access MyName will not help me. So I am not looking for this answer:

<jsp:useBean id="name" class="MyName" scope="page"/>
<jsp:setProperty name="name" property="firstName" value="aFirstName"/>

Upvotes: 2

Views: 10186

Answers (1)

BalusC
BalusC

Reputation: 1108537

You could just create both beans and set one in other by ${}.

<jsp:useBean id="myName" class="MyName" scope="page" />
<jsp:setProperty name="myName" property="firstName" value="aFirstName" />
<jsp:useBean id="myExample" class="MyExample" scope="page" />
<jsp:setProperty name="myExample" property="myExampleName" value="${myName}" />

Unrelated to the concrete problem, I'd suggest to invest time in learning servlets and MVC. The above is a pretty old fashioned and tight-coupled way of controlling the models in the view.

Note that using packageless classes may not work in all circumstances (since they are invisible for normal classes inside a package). Only in certain Apache Tomcat configurations it will work. Rather put your classes inside a package in order to be not dependent of that.

Upvotes: 2

Related Questions