代码之家  ›  专栏  ›  技术社区  ›  Daniel Szalay

将支持bean实例作为另一个支持bean方法的参数传递

  •  0
  • Daniel Szalay  · 技术社区  · 17 年前

    所以现在我是这样做的:

    <% OtherBean.method(myBackingBean); %>
    

    如果我是对的,这不是一个最新的解决方案:)那么我如何才能以“更好”的方式实现这一点呢?

    提前感谢,, 丹尼尔。

    2 回复  |  直到 17 年前
        1
  •  3
  •   McDowell rahul gupta    17 年前

    例如,这个简单的bean:

    public class SimpleBean {
    
      private String forename;
      private String surname;
    
      public String processData() {
        // TODO: real work
        System.out.println("forename=" + forename);
        System.out.println("surname=" + surname);
        return null; // optional navigation rule
      }
    
      public String getForename() {
        return forename;
      }
    
      public void setForename(String forename) {
        this.forename = forename;
      }
    
      public String getSurname() {
        return surname;
      }
    
      public void setSurname(String surname) {
        this.surname = surname;
      }
    
    }
    

    <managed-bean>
        <managed-bean-name>simpleBean</managed-bean-name>
        <managed-bean-class>simplebean.SimpleBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    

    …可以使用此JSP进行处理:

    <?xml version="1.0" encoding="UTF-8" ?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
      <jsp:directive.page language="java"
        contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" />
      <jsp:text>
        <![CDATA[<?xml version="1.0" encoding="UTF-8" ?>]]>
      </jsp:text>
      <jsp:text>
        <![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]>
      </jsp:text>
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <title>Enter Name</title>
      </head>
      <body>
      <f:view>
        <h:form>
          <h:panelGrid columns="2">
            <h:outputText value="forename:" />
            <h:inputText id="it1" value="#{simpleBean.forename}" />
            <h:outputText value="surname:" />
            <h:inputText id="it2" value="#{simpleBean.surname}" />
          </h:panelGrid>
          <h:commandButton action="#{simpleBean.processData}"
            value="process" />
        </h:form>
      </f:view>
      </body>
      </html>
    </jsp:root>
    

    注意方法绑定#{simpleBean.processData}。这必须是一个不接受任何参数并返回字符串参数(如果需要,可用于页面导航)的公共方法。

    这不是实现这一点的唯一方法,但它相当简单。

        2
  •  0
  •   mR_fr0g    17 年前

    您可以将一个支持bean作为另一个bean的实例变量。并在spring或您正在使用的任何程序中配置它。

    推荐文章