1

クラスのオブジェクトを返すメソッドがあります。オブジェクトは、クラスのプロパティを設定して返します。
オブジェクトをトラバースして、オブジェクトが以前に設定したプロパティの値を取得する必要があります。

for-each ループ、反復子を使用しようとしましたが、トラバースできませんでした。

誰かがこれを乗り越えるのを手伝ってくれませんか。よろしくお願いします。

コード:

public class ConsumerTool {

 public MessageBean getMessages() {
        MessageBean msgBean = new MessageBean();

        msgBean.setAtmId(atmId.trim());
        msgBean.setEventText(eventText.trim());
        msgBean.setEventNumber(eventNumber.trim());
        msgBean.setSeverity(severity.trim());
        msgBean.setSubsystemID(subsystemID.trim());
        msgBean.setUniqueEventID(uniqueEventID.trim());
        msgBean.setTaskID(taskID.trim());
        msgBean.setGenerator(generator.trim());
        msgBean.setGeneratorBuildVsn(generatorBuildVsn.trim());
        msgBean.setDateTime(dateTime.trim());

        this.msgBean = msgBean;
        return msgBean;
    }
}

JavaBean クラス:

public class MessageBean implements java.io.Serializable {  

    public String dateTime;
    public String severity;
    public String eventText;
    public String eventNumber;
    public String generator;
    public String generatorBuildVsn;
    public String atmId;
    public String uniqueEventID;
    public String subsystemID;
    public String taskID;

    //System.out.println("dateTime2222222"+dateTime);

    public String getAtmId() {
        return this.atmId;
    }

    public void setAtmId(String n) {
        this.atmId = n;
    }

    public String getDateTime() {
        return this.dateTime;
    }

    public void setDateTime(String n) {
        this.dateTime = n.trim();
    }

    public String getEventNumber() {
        return this.eventNumber;
    }

    public void setEventNumber(String n) {
        this.eventNumber = n;
    }

    public String getEventText() {
        return this.eventText;
    }

    public void setEventText(String n) {
        this.eventText = n;
    }

    public String getGenerator() {
        return this.generator;
    }

    public void setGenerator(String n) {
        this.generator = n;
    }

    public String getGeneratorBuildVsn() {
        return this.generatorBuildVsn;
    }

    public void setGeneratorBuildVsn(String n) {
        this.generatorBuildVsn = n;
    }

    public String getSeverity() {
        return this.severity;
    }

    public void setSeverity(String n) {
        this.severity = n;
    }

    public String getSubsystemID() {
        return this.subsystemID;
    }

    public void setSubsystemID(String n) {
        this.subsystemID = n;
    }

    public String getTaskID() {
        return this.taskID;
    }

    public void setTaskID(String n) {
        this.taskID = n;
    }

    public String getUniqueEventID() {
        return this.uniqueEventID;
    }

    public void setUniqueEventID(String n) {
        this.uniqueEventID = n;
    }


}

テーマは、オブジェクトが javabean クラスのプロパティを設定することであり、UI からそれらの値を取得する必要があります。

Jspで

<%
MessageBean consumer = msg.getMessages();

//Now here i want to iterate that consumer object
%>
4

1 に答える 1

1

はjavabeans 仕様MessagesBeanに準拠しているように見えるので、そのまま使用できます。java.beans.Introspector

MessageBean messageBean = consumerTool.getMessages();
// ...

BeanInfo beanInfo = Introspector.getBeanInfo(MessageBean.class);

for (PropertyDescriptor property : beanInfo.getPropertyDescriptors()) {
    String name = property.getName();
    Object value = property.getReadMethod().invoke(messageBean);
    System.out.println(name + "=" + value);
}

これはすべて、リフレクション APIを使用して隠蔽されています。


編集を更新すると、これを使用して JSP でデータを表示することが明らかになります。その場合、これは実際には正しいアプローチではありません。弾丸を噛み、すべてのプロパティを個別に指定します。このようにして、順序を完全に制御できます。

于 2012-04-26T05:02:38.643 に答える