简体   繁体   English

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

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

Profile.jsp 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 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
}

Domain class 域类

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;
}

 }

Error in browser 浏览器错误

    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>

If I just print ${profile} in my JSP in using h1 tag then it print Object [in.capp.domain.User@812ee27] successfully. 如果仅使用h1标签在JSP中打印${profile} ,则它将成功打印对象[in.capp.domain.User@812ee27] It means i am getting object[One object only] but can't iterate that object how can i print that object values in my jsp?? 这意味着我正在获取对象[仅一个对象],但是无法迭代该对象,我该如何在我的jsp中打印该对象值? i have added jstl jar in my project but facing this issue. 我在我的项目中添加了jstl jar ,但面临此问题。

It looks like you are doing almost everything right, but you are using the wrong jstl tag. 看起来您所做的一切几乎都正确,但是您使用了错误的jstl标记。 c:forEach would be used to iterate through a collection, something you don't need right now. c:forEach将用于遍历集合,这是您现在不需要的。 Try just: 尝试一下:

<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