Java使用JavaBeans的地方?

什么是JavaBean,为什么需要它?既然可以创建具有类和接口结构的所有应用程序?为什么我需要豆子?你能给我一些例子,在这些例子中,bean是必不可少的,而不是类和接口?

请在以下上下文中说明Bean的必要性:

  • Wep apps
  • Standalone apps

回答:

它们通常仅代表真实世界的数据。这是一个Javabean的简单示例:

public class User implements java.io.Serializable {

// Properties.

private Long id;

private String name;

private Date birthdate;

// Getters.

public Long getId() { return id; }

public String getName() { return name; }

public Date getBirthdate() { return birthdate; }

// Setters.

public void setId(Long id) { this.id = id; }

public void setName(String name) { this.name = name; }

public void setBirthdate(Date birthdate) { this.birthdate = birthdate; }

// Important java.lang.Object overrides.

public boolean equals(Object other) {

return (other instanceof User) && (id != null) ? id.equals(((User) other).id) : (other == this);

}

public int hashCode() {

return (id != null) ? (getClass().hashCode() + id.hashCode()) : super.hashCode();

}

public String toString() {

return String.format("User[id=%d,name=%s,birthdate=%d]", id, name, birthdate);

}

}

实施Serializable并不是强制性的,但是如果你希望能够在Java内存之外(例如,在硬盘中或通过网络)持久或传输Javabean,则实现非常有用。

例如,在DAO类中,你可以使用它创建用户列表,在其中将表的数据存储user在数据库中:

List<User> users = new ArrayList<User>();

while (resultSet.next()) {

User user = new User();

user.setId(resultSet.getLong("id"));

user.setName(resultSet.getString("name"));

user.setBirthdate(resultSet.getDate("birthdate"));

users.add(user);

}

return users;

例如,在一个Servlet类中,你可以使用它来将数据从数据库传输到UI:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {

List<User> users = userDAO.list();

request.setAttribute("users", users);

request.getRequestDispatcher("users.jsp").forward(request, response);

}

例如,在一个JSP页面中,你可以通过EL(遵循Javabean约定)对其进行访问以显示数据:

<table>

<tr>

<th>ID</th>

<th>Name</th>

<th>Birthdate</th>

</tr>

<c:forEach items="${users}" var="user">

<tr>

<td>${user.id}</td>

<td><c:out value="${user.name}" /></td>

<td><fmt:formatDate value="${user.birthdate}" pattern="yyyy-MM-dd" /></td>

</tr>

</c:forEach>

</table>

是否有意义?你会发现,这是一种约定,你可以在任何地方使用它来存储,传输和访问数据。

以上是 Java使用JavaBeans的地方? 的全部内容, 来源链接: utcz.com/qa/420606.html

回到顶部