繁体   English   中英

如何使用JSTL访问jsp中的域类对象[仅一个类对象]

[英]how to access domain class object [only one class object] in jsp using JSTL

Profile.jsp

<c:forEach var="p" items="${profile}">
            <tr>
            <td>${p.userId} </td>
             <td><c:out value="${p.name}" /></td>
            <td>${p.phone}</td>
            <td>${p.email}</td>
            <td>${p.address}</td>
            <td>${p.loginName}</td>
            </c:forEach>

userController.java

  @RequestMapping("/profile")
public String profile(Model m,HttpSession session) {
    Integer userId = (Integer) session.getAttribute("userId");
    m.addAttribute("profile", userService.profile(userId));
    return "profile"; // JSP
}

域类

package in.capp.domain;

 public class User {
private Integer userId;
private String name;
private String phone;
private String email;
private String address;
private String loginName;
private String password;
private Integer role;
private Integer loginStatus;


public User() {
    super();
}

public Integer getUserId() {
    return userId;
}

public void setUserId(Integer userId) {
    this.userId = userId;
}

public String getName() {
    return name;
}

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

public String getPhone() {
    return phone;
}

public void setPhone(String phone) {
    this.phone = phone;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

public String getLoginName() {
    return loginName;
}

public void setLoginName(String loginName) {
    this.loginName = loginName;
}

public String getPassword() {
    return password;
}

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

public Integer getRole() {
    return role;
}

public void setRole(Integer role) {
    this.role = role;
}

public Integer getLoginStatus() {
    return loginStatus;
}

public void setLoginStatus(Integer loginStatus) {
    this.loginStatus = loginStatus;
}

 }

浏览器错误

    org.apache.jasper.JasperException: An exception occurred processing JSP 
   page /WEB-INF/view/profile.jsp at line 46

  43:               </tr>
  44:               </c:if>
  45:               ${profile} }
   46:               <c:forEach var="p" items="${profile}">
  47:               <tr>
 48:                <td>${p.userId} </td>
 49:                 <td><c:out value="${p.name}" /></td>

如果仅使用h1标签在JSP中打印${profile} ,则它将成功打印对象[in.capp.domain.User@812ee27] 这意味着我正在获取对象[仅一个对象],但是无法迭代该对象,我该如何在我的jsp中打印该对象值? 我在我的项目中添加了jstl jar ,但面临此问题。

看起来您所做的一切几乎都正确,但是您使用了错误的jstl标记。 c:forEach将用于遍历集合,这是您现在不需要的。 尝试一下:

<tr>
<td><c:out value="profile.userId" /></td>
<td><c:out value="profile.name" /></td>
<td><c:out value="profile.phone" /></td>
<td><c:out value="profile.email" /></td>
<td><c:out value="profile.address" /></td>
<td><c:out value="profile.loginName" /></td>
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM