【问题标题】:invoking a bean method in jsp page在jsp页面中调用bean方法
【发布时间】:2012-04-09 10:31:57
【问题描述】:

我有一个可以创建 bean 的类,并且该 bean 很少有 get 和 set 方法(例如 setId 和 getId,现在我将这个 java 文件包含在 jsp 页面中,现在我的问题是如何转发返回的值通过bean到jsp文件?

请帮忙。

【问题讨论】:

  • 可能是请求参数,但是你试过什么?需要更多细节

标签: java oop jsp servlets javabeans


【解决方案1】:

只需将 bean 放在您需要它可用的范围内。例如,如果是 User 类需要在会话范围内:

request.getSession().setAttribute("user", user);

这样user 实例可以通过EL 中的属性名称"user" 获得,如下${user}。然后,要通过 getter 方法访问其属性,只需在 EL 中使用句点 . 运算符,在其中指定属性名称。

${user.id} 
${user.firstname}
${user.lastname}
...

无需将所有属性单独放在请求范围内。

另见:

【讨论】:

  • +1 用于 wiki 链接。顺便说一句,我将如何从首页导航到它们?
【解决方案2】:

这应该是您的 servlet 中的内容:

MyBean bean = new MyBean(); //This should be your bean
Object o1 = bean.getObject1(); //Please don't use Object, use the correct type
Object o2 = bean.getObject2();

request.setAttribute("name",o1); //name can be anything you want
request.setAttribute("test",o2);
//forward to JSP

========================================

在你的jsp中你可以使用EL:

<!-- This is the firstObject -->
<p>${name}</p>

<!-- This is the second Object -->
<b>${test}</b>

========================================

或者使用 use:Bean: 的旧样式

<!-- This is the first Object, use the correct type in class -->
<jsp:useBean id="name" scope="request" class="java.lang.Object" />

现在您可以访问 bean 的属性:

<jsp:getProperty name="name" property="firstName"/>

或:

<%= name.getFirstName() %>

========================================

通常很少使用第二部分。现在大多数人都使用 EL。但我只是把它包括在内,以涵盖所有内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 2013-02-14
    相关资源
    最近更新 更多