gpt4 book ai didi

java - :outputLabel not showing anything

转载 作者:行者123 更新时间:2023-12-02 00:11:39 24 4
gpt4 key购买 nike

我面临的问题是,在单击 h:commandLink 按钮后,h:outputLabel 没有显示任何内容。我已使用 selectedUser 在提交表单时存储值,但似乎 selectedUser 未存储任何值。

1)这是 xhtml 文件。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core">


<h:head></h:head>



<h:body class="thrColElsHdr">


<div class="friends">

<h4>Friends</h4>
<h:form>
<p:selectOneMenu value="#{chatBean.selectedUser}">
<f:selectItems value="#{chatBean.friendList}" var="users" itemLabel="#{users.firstName}" itemValue="#{users}"/>
</p:selectOneMenu>

<h:commandLink>Chat</h:commandLink>
</h:form>
<br>
</br>
<h:outputLabel value="#{chatBean.selectedUser.firstName}"/>


</div>




</h:body>
</html>

2)这是 chatBean,它使用 facesconfig.xml 进行 session 范围

package com.bean;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.servlet.http.HttpSession;

import com.entity.Friend;
import com.entity.User;

public class ChatBean {
private EntityManager em;
private User selectedUser;


public User getSelectedUser() {
return selectedUser;
}


public void setSelectedUser(User selectedUser) {
this.selectedUser = selectedUser;
}


public ChatBean(){
selectedUser= new User();
EntityManagerFactory emf=Persistence.createEntityManagerFactory("FreeBird");
em =emf.createEntityManager();
}


public List<User> getFriendList(){

FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
User user=(User) session.getAttribute("userdet");
Query query = em.createQuery("SELECT f FROM Friend f WHERE f.email='"+user.getEmail()+"' AND f.status=1",Friend.class);
List<Friend> results =query.getResultList();
ArrayList<User> friends = new ArrayList<User>();
Iterator<Friend> it = results.iterator();
while(it.hasNext()){
System.out.println("in getFriendList...");

User friend =em.find(User.class,it.next().getFriendEmail());
friends.add(friend);
}
return friends;
}
}

3)这是用户实体类

package com.entity;

import java.io.Serializable;
import javax.persistence.*;


/**
* The persistent class for the user database table.
*
*/
@Entity
public class User implements Serializable {
private static final long serialVersionUID = 1L;

@Id
private String email;

@Lob()
private String aboutMe;

private String birthDate;

private String city;

private String college;

private String confirmation;

private String contactNo;

private String country;

private String degree;

private String firstName;

private String gender;

private String highSchool;

private String image;

private String interest;

private String lastName;

private String password;

private int pincode;

@Lob()
private String quote;

private String relationship;

private String secondarySchool;

private String state;

private String street;

private String university;

private String userName;

public User() {
}

public String getEmail() {
return this.email;
}

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

public String getAboutMe() {
return this.aboutMe;
}

public void setAboutMe(String aboutMe) {
this.aboutMe = aboutMe;
}

public String getBirthDate() {
return this.birthDate;
}

public void setBirthDate(String birthDate) {
this.birthDate = birthDate;
}

public String getCity() {
return this.city;
}

public void setCity(String city) {
this.city = city;
}

public String getCollege() {
return this.college;
}

public void setCollege(String college) {
this.college = college;
}

public String getConfirmation() {
return this.confirmation;
}

public void setConfirmation(String confirmation) {
this.confirmation = confirmation;
}

public String getContactNo() {
return this.contactNo;
}

public void setContactNo(String contactNo) {
this.contactNo = contactNo;
}

public String getCountry() {
return this.country;
}

public void setCountry(String country) {
this.country = country;
}

public String getDegree() {
return this.degree;
}

public void setDegree(String degree) {
this.degree = degree;
}

public String getFirstName() {
return this.firstName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

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

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

public String getHighSchool() {
return this.highSchool;
}

public void setHighSchool(String highSchool) {
this.highSchool = highSchool;
}

public String getImage() {
return this.image;
}

public void setImage(String image) {
this.image = image;
}

public String getInterest() {
return this.interest;
}

public void setInterest(String interest) {
this.interest = interest;
}

public String getLastName() {
return this.lastName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

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

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

public int getPincode() {
return this.pincode;
}

public void setPincode(int pincode) {
this.pincode = pincode;
}

public String getQuote() {
return this.quote;
}

public void setQuote(String quote) {
this.quote = quote;
}

public String getRelationship() {
return this.relationship;
}

public void setRelationship(String relationship) {
this.relationship = relationship;
}

public String getSecondarySchool() {
return this.secondarySchool;
}

public void setSecondarySchool(String secondarySchool) {
this.secondarySchool = secondarySchool;
}

public String getState() {
return this.state;
}

public void setState(String state) {
this.state = state;
}

public String getStreet() {
return this.street;
}

public void setStreet(String street) {
this.street = street;
}

public String getUniversity() {
return this.university;
}

public void setUniversity(String university) {
this.university = university;
}

public String getUserName() {
return this.userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

}

最佳答案

您的托管 Bean 必须具有相应的注释:

@ViewScoped
@ManagedBean
public class ChatBean {
//...
}

可以使用以下提示之一更正该示例:

  • 添加action给您<h:commandLink>并将其绑定(bind)到返回页面名称的方法。这样,页面就会刷新,显示#{chatBean.selectedUser.firstName}中的新值。 :

    <h:commandLink action="#{chatBean.refresh}" value="Chat" />

在你的类(class):

public String refresh() {
return "index";
}
  • 将 ajax 行为添加到您的 <h:commandLink> 中为了更新<h:outputLabel> 。您应该将 id 属性添加到您的 <h:outputLabel> :

    <h:commandLink value="Chat">
    <f:ajax render=":theLabel" />
    </h:commandLink>
    <!-- jsf code -->
    <h:outputLabel id="theLabel" value="#{chatBean.selectedUser.firstName}"/>

关于java - :outputLabel not showing anything,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12696539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com