JavaBean到CSV文件

时间:2013-07-22 12:45:22

标签: java jsp servlets

将JavaBean中的信息放入CSV文件的最佳方法是什么?我正在创建一个注册页面,并通过JSP页面设置了我的User JavaBean的所有参数,我需要在每次有人注册时将这些信息存储到来自servlet的csv中,这样我就可以在使用登录JSP页面时检索这些信息。

这是我的JavaBean

package bean.user;

public class User_profile {

 private String First_Name;
 private String Last_Name;
 private String ssn;
 private String birthday;
 private String home_phone;
 private String password;
 private String gender;
 private String email;

public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFirst_Name() {
return First_Name;
}
public void setFirst_Name(String first_Name) {
First_Name = first_Name;
}
public String getLast_Name() {
return Last_Name;
}
public void setLast_Name(String last_Name) {
Last_Name = last_Name;
}


public String getSsn() {
return ssn;
}
public void setSsn(String ssn) {
this.ssn = ssn;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getHome_phone() {
return home_phone;
}
public void setHome_phone(String home_phone) {
this.home_phone = home_phone;
}


public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}


}

3 个答案:

答案 0 :(得分:1)

您可以使用内省来检索bean的所有属性及其相应的读/写方法,然后通过反射调用它们。

以下是这个简单类的示例:

public class User {

  private String login;
  private String name;
  private String surname;
  private Integer age;

  //Getters and setters
}

现在,我创建一个用户并将其属性转储到带有逗号分隔值的字符串中:

User u = new User();
u.setAge(18);
u.setLogin("myLogin");
u.setName("myName");
u.setSurname("mySurname");

for(PropertyDescriptor pd : Introspector.getBeanInfo(User.class).getPropertyDescriptors()){
  //I don't want to get the "class" property
  if(!pd.getName().equals("class")){
    Method readMethod = pd.getReadMethod();
    System.out.print(readMethod.invoke(u)+",");
  }
}

输出:

18,myLogin,myName,mySurname,

注意:为了简化这个例子,我没有在输出结尾处抑制',',并且在属性包含字符','时没有处理。

答案 1 :(得分:0)

如果您真的想要CSV,请使用jsefa,但这更适合将详细信息存储在某种排序或存储库/数据库中。

答案 2 :(得分:0)

您可以使用此库http://jexcelapi.sourceforge.net/或任何此类库,它们可以帮助您以CSV格式转换Java对象。还有一个给你http://kasparov.skife.org/csv/