JSF View Parameter auslesen

Rallenaldo

Mitglied
Hi.

Ich habe eine Frage bezüglich der View Parameter. Ich habe folgendes Problem:

Ich will über einen Link einen bestimmten Datensatz aus der Datenbank auslesen. Wenn ich auf einen Link klicke, erscheint in der Adresszeile meines Browsers die korrekte URL, allerdings wird der Datensatz nicht auf der Seite angezeigt. Ich benutze hierfür folgende Klassen bzw. Views:

Klasse CompanySiteController:

Java:
package de.zerrenda.zerrendaee6.controller;

import de.zerrenda.zerrendaee6.entities.Company;
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Named
@SessionScoped
public class CompanySiteController implements Serializable{
    
    @PersistenceContext(unitName="ZerrendaPU")
    EntityManager em;

    private int companyId;
    private Company company;

    public int getCompanyId() {
        return companyId;
    }

    public void setCompanyId(int id) {
        this.companyId = id;
    }

    public Company getCompany() {
        return company;
    }

    public void setCompany(Company company) {
        this.company = company;
    }

    public String goToCompanySite(int id){
        
        setCompanyId(id);
        
        company = em.find(Company.class, getCompanyId());
                
        return "/Sites/companyHome.xhtml";
    }
    
    
}

View1: Index.xhtml

HTML:
<?xml version='1.0' encoding='UTF-8' ?>
<!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://xmlns.jcp.org/jsf/facelets"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://xmlns.jcp.org/jsf/core">

    <body>

        <ui:composition template="./META-INF/templates/template.xhtml">

            <ui:define name="left">
                left
            </ui:define>

            <ui:define name="right">
                right              
            </ui:define>

            <ui:define name="content">
            <p align="center">Zerrenda Logo</p>
		<div align="center">
			<h:form>
				<h:panelGrid columns="2">
					<p:inputText id="suchfeld" size="80" />
					<p:commandButton value="Suche"/>
				</h:panelGrid>
			</h:form>
		</div>

		<div align="center">
			<h:form>
				<h:panelGrid columns="3">
                                    <p:dataTable value="#{companyListProducer.latest5Companys}" var="latest">
						<p:column>
							<f:facet name="header">
								<h:outputText value="Neueste Einträge" />
							</f:facet>
                                                    <h:link outcome="companyHome" value="#{latest.companyId}">
                                                        <f:param name="companyId" value="#{latest.companyId}"/>
                                                    </h:link>
						</p:column>
					</p:dataTable>
					<p:dataTable>
						<p:column>
							<f:facet name="header">
								<h:outputText value="Häufigste Produktgruppen" />
							</f:facet>
						</p:column>
					</p:dataTable>
					<p:dataTable>
						<p:column>
							<f:facet name="header">
								<h:outputText value="Häufigste Suchbegriffe" />
							</f:facet>
						</p:column>
					</p:dataTable>
				</h:panelGrid>
			</h:form>
		</div>
            </ui:define>

        </ui:composition>

    </body>
</html>

View2: companyHome.xhtml

HTML:
<?xml version='1.0' encoding='UTF-8' ?>
<!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://xmlns.jcp.org/jsf/facelets"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    
    <f:metadata>
        <f:viewParam name="companyId" value="#{companySiteController.companyId}"></f:viewParam>
    </f:metadata>

    <h:head>
        <title>Zerrenda #{companySiteController.company.companyName}</title>
    </h:head>
    <body>

        <ui:composition template="./../META-INF/templates/template.xhtml">

            <ui:define name="content">
                CompanyId = <h:outputText value="#{companySiteController.companyId}" />
            </ui:define>

        </ui:composition>

    </body>
</html>

Könnt ihr mir bei dem Problem helfen und einen Denkanstoß geben?
 

AndiE

Top Contributor
Soweit ich das erkennen kann, rufst du mit dem Link eine Methode der Klasse "companyListProducer" auf. Kannst du die auch noch mal posten? Nutzt du keine Interfaces?
 

Rallenaldo

Mitglied
Hi. Hier ist der Code vom CompanyListProducer

Java:
package de.zerrenda.zerrendaee6.data;

import de.zerrenda.zerrendaee6.entities.Company;
import de.zerrenda.zerrendaee6.entities.User;
import de.zerrenda.zerrendaee6.qualifiers.Added;
import de.zerrenda.zerrendaee6.qualifiers.Deleted;
import de.zerrenda.zerrendaee6.qualifiers.Updated;
import de.zerrenda.zerrendaee6.services.CompanyService;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;

@Named
@RequestScoped
public class CompanyListProducer {
    
    @PersistenceContext(unitName="ZerrendaPU")
    private EntityManager em;
    
    @Inject
    private CompanyService companyService;
    
    @PostConstruct
    public void init(){
        
        company = companyService.getAllCompanys();
        latest5Companys = companyService.getLatest5Companys();
    }
    
    private List<Company> company;
    private List<Company> latest5Companys;
    private User user;
    private String searchedCompanyName;
    private int searchedCompanyZipCode;

    public List<Company> getCompany() {
        return company;
    }

    public void setCompany(List<Company> company) {
        this.company = company;
    }

    public List<Company> getLatest5Companys() {
        return latest5Companys;
    }

    public void setLatest5Companys(List<Company> latest5Companys) {
        this.latest5Companys = latest5Companys;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String getSearchedCompanyName() {
        return searchedCompanyName;
    }

    public void setSearchedCompanyName(String searchedCompanyName) {
        this.searchedCompanyName = searchedCompanyName;
    }

    public int getSearchedCompanyZipCode() {
        return searchedCompanyZipCode;
    }

    public void setSearchedCompanyZipCode(int searchedCompanyZipCode) {
        this.searchedCompanyZipCode = searchedCompanyZipCode;
    }
        
    public void onCompanyAdded(@Observes @Added Company company){
        companyService.addCompany(company);
    }
    
    public void onCompanyUpdated(@Observes @Updated Company company){
        companyService.updateCompany(company);
    }
    
    public void onCompanyDeleted(@Observes @Deleted Company company){
        companyService.deleteCompany(company);
    }
    
    public List<Company> getCompanyByUserId(User user){
        
        TypedQuery<Company> query = em.createNamedQuery("Company.findByUserId", Company.class);
        company = query.setParameter("userId", user.getUserId()).getResultList();
        
        return company;
    }
    
    public void getCompanyByCompanyName(){
        
        TypedQuery<Company> query = em.createNamedQuery("Company.findByCompanyName", Company.class);
        company = query.setParameter("companyName", searchedCompanyName).getResultList();
    }
    
    public void getCompanyByCompanyZipCode(){
        
        TypedQuery<Company> query = em.createNamedQuery("Company.findByCompanyZipCode", Company.class);
        company = query.setParameter("companyZipCode", searchedCompanyZipCode).getResultList();
    }
    
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JSF Primefaces beim öffnen eines p:dialog wird eine neue View ManagedBean erstellt Web Tier 2
M Struts Struts2 / Freemarker / Maven2: Markieren von Deployment-Stufen in der View-Schicht Web Tier 4
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
R Servlet Alle Parameter ausgeben Web Tier 14
M JSF JSF: Methode bei versteckt aufrufen & Parameter übergeben Web Tier 6
R Parameter in HttpServletRequestWrapper übertragen Web Tier 2
K JSP Parameter in die Bohne übergeben Web Tier 3
J Übergabe von Parameter aus JSP an Java Web Tier 2
H Servlet Servlet nimmt HTTP-GET mit Parameter entgegen Web Tier 2
D Parameter übergeben und auslesen Web Tier 7
M STRUTS2 - Array als Parameter übergeben Web Tier 2
A JSF xhtml parameter / zugriff auf value Web Tier 2
P rich:panelMenuGroup --> expanded Parameter Problem Web Tier 3
K jquery.get() mehrere Parameter Web Tier 2
P Mit EL Parameter an Methode übergeben Web Tier 5
J JSF CommandLink Parameter Web Tier 2
K Link in JSP setzen mit Parameter/Attribut Web Tier 4
M JSP Parameter übergeben Web Tier 9
M JSF: CommandButton übergibt den Parameter nicht Web Tier 3
S servlet bedienen mit get und post parameter Web Tier 10
O Kann man POST Parameter Link-abhängig setzen? Web Tier 4
El Gringo Parameter in CommandLink übergeben Web Tier 4
T parameter in der url Web Tier 3
R Request Parameter kopieren und setzen Web Tier 3
S JSF, Parameter aus Facescontext auslesen Web Tier 1
G jsp parameter anhängen Web Tier 2
S Bild hochladen mit JSP - Parameter übergeben Web Tier 4
leifg Parameter für Tags aus String lesen (JSP 1.2) Web Tier 2
A JSP key=value Paare aus der URL auslesen Web Tier 3
F JSP jSP Datei mit normalem Java Programm auslesen? Web Tier 5
A URL auslesen Web Tier 3
N JSF CommandButton Daten aus anderem Form auslesen Web Tier 3
J JSP JSTL <c:url> - jsessionid auslesen Web Tier 1
T Tomcat: Packete dynamisch auslesen und Klassen erzeugen Web Tier 3
X JSP Auslesen der Daten einer Session Web Tier 3
A URL nur ersten teil auslesen Web Tier 9
F HTML select auslesen Web Tier 3
S /Navigate?do=bla in URL - Wie Servletname auslesen? Web Tier 3
C Vollständige URL auslesen Web Tier 2
C Formulardaten der Reihe nach auslesen Web Tier 5
J Servlet-init-param in JSF-Anwendung auslesen Web Tier 2
? XML Parsen - IDs auslesen - HTML generieren Web Tier 11
S JSF: Name des Formulars auslesen Web Tier 4
pusteblume JavaScript mit Struts auslesen? Web Tier 3
J Struts 2 session ID auslesen? Web Tier 5
T Computer-Sprache auslesen Web Tier 13
G WebSeite hinter einem Login auslesen Web Tier 8
G Session in Servlet Starten und mit JSTL auslesen Web Tier 2
M JSF - Bean aus SessionScope direkt im JSF Code auslesen Web Tier 1

Ähnliche Java Themen

Neue Themen


Oben