JSTL+el输出用户信息
时间: 2023-05-29 10:04:18 浏览: 166
假设你的用户信息是存储在一个名为`user`的JavaBean对象中,可以使用JSTL的`<c:out>`标签输出用户信息。例如:
```jsp
<c:out value="${user.username}" /> <!-- 输出用户名 -->
<c:out value="${user.email}" /> <!-- 输出用户电子邮件 -->
<c:out value="${user.age}" /> <!-- 输出用户年龄 -->
```
在这个示例中,`${user.username}`、`${user.email}` 和 `${user.age}` 是EL表达式,用于访问`user`对象的属性。`<c:out>`标签将会把属性值输出到页面上。如果属性值是空的,`<c:out>`标签将不会输出任何内容。
相关问题
使用EL、JSTL处理表单数据
当用户提交表单数据后,我们可以通过EL表达式和JSTL标签库来处理表单数据。
首先,在JSP页面中,我们可以使用EL表达式来获取表单数据。比如,如果我们有一个表单输入框,其name属性为“username”,我们可以使用以下代码获取用户输入的值:
```html
<input type="text" name="username"/>
<p>用户名:${param.username}</p>
```
在上述代码中,`${param.username}`就是通过EL表达式获取表单数据的方式。
接下来,我们可以使用JSTL标签库来对表单数据进行处理,比如判断用户是否输入了数据,或者将数据进行格式化输出。以下是一个简单的例子:
```html
<c:if test="${not empty param.username}">
<p>您输入的用户名为:${param.username}</p>
</c:if>
<c:if test="${empty param.username}">
<p>请输入用户名</p>
</c:if>
```
在上述代码中,我们使用了`<c:if>`标签来判断用户是否输入了用户名。如果输入了,就输出用户名,否则就提示用户输入用户名。
当然,JSTL还有很多其他的标签可以用来处理表单数据,比如`<fmt:formatNumber>`标签用来格式化数字,`<fmt:formatDate>`标签用来格式化日期等等。
使用JSTL和EL,设计用户类User,包含性别,年龄,性别,生日,电话、爱好这些字段,并添加有参构造方法和对应字段的getter、setter方法,并输出用户列表的数据
User类代码:
```java
public class User {
private String name;
private String gender;
private int age;
private Date birthday;
private String phone;
private List<String> hobbies;
public User(String name, String gender, int age, Date birthday, String phone, List<String> hobbies) {
this.name = name;
this.gender = gender;
this.age = age;
this.birthday = birthday;
this.phone = phone;
this.hobbies = hobbies;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public List<String> getHobbies() {
return hobbies;
}
public void setHobbies(List<String> hobbies) {
this.hobbies = hobbies;
}
}
```
输出用户列表的JSP页面代码:
```jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<title>User List</title>
</head>
<body>
<table>
<tr>
<th>Name</th>
<th>Gender</th>
<th>Age</th>
<th>Birthday</th>
<th>Phone</th>
<th>Hobbies</th>
</tr>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.name}</td>
<td>${user.gender}</td>
<td>${user.age}</td>
<td><fmt:formatDate value="${user.birthday}" pattern="yyyy-MM-dd"/></td>
<td>${user.phone}</td>
<td>
<c:forEach items="${user.hobbies}" var="hobby" varStatus="status">
${hobby}<c:if test="${!status.last}">, </c:if>
</c:forEach>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>
```
在Servlet中获取用户列表并向JSP页面传递:
```java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<User> users = new ArrayList<>();
users.add(new User("Tom", "male", 20, new Date(), "123456789", Arrays.asList("reading", "music")));
users.add(new User("Jane", "female", 22, new Date(), "987654321", Arrays.asList("traveling", "swimming")));
request.setAttribute("users", users);
request.getRequestDispatcher("user_list.jsp").forward(request, response);
}
```
运行结果:
```
Name Gender Age Birthday Phone Hobbies
Tom male 20 2022-02-18 123456789 reading, music
Jane female 22 2022-02-18 987654321 traveling, swimming
```
阅读全文