使用 jsp:setProperty 在另一个 bean 中设置一个 bean

发布于 2024-10-15 09:16:42 字数 973 浏览 1 评论 0原文

我想知道如何在以下场景中使用 jsp:setProperty。这是两个 java 类的简单示例。

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;
  }
}

我试图使用类似的东西:

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

这里重要的部分是我想从 MyExample 中引用 MyName 对象。因此,创建一个 bean 来直接访问 MyName 对我没有帮助。所以我不是在寻找这个答案:

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

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"/>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧人九事 2024-10-22 09:16:42

您可以创建两个 bean,然后通过 ${} 将其中一个设置为另一个。

<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}" />

与具体问题无关,我建议花时间学习 servlet 和 MVC。上面是控制视图中模型的一种非常老式的紧耦合方式。

请注意,使用无包类可能并非在所有情况下都有效(因为它们对于包内的普通类是不可见的)。仅在某些 Apache Tomcat 配置中它才可以工作。而是将您的类放入包中,以便不依赖于该包。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文