2012-04-26 44 views
1

我有一个方法返回一个类的对象。该对象设置类的属性并返回。
我必须遍历对象并获取对象之前设置的属性的值。通过java中的对象进行遍历

我试着用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 
%> 
+0

我忘了提这是一个java问题 – user1254261 2012-04-26 04:53:16

回答

1

由于MessagesBean似乎符合了javabeans specification,你可以只使用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); 
} 

这一切都在使用reflection API的封面下。


更新你的编辑发现,你打算使用这个JSP中呈现数据。这当然不是真正的方法。咬住项目符号并分别指定每个属性。这样你就可以完全控制订单。

+0

谢谢,我会尽力照你说的去做。 – user1254261 2012-04-26 05:06:39

+0

伟大的,从来没有使用的内省,会尝试。 – 2012-04-26 05:24:28