Hi Leute,ich hab n Prob mit JavaServer Faces.
Hier sind die Code-Schnipsel:
NewsView.jsp:
NewsView.java
NewsItem.java
faces-config.xml
Wenn ich das Portlet aufrufe bekomme ich ne leere Seite angezeigt. Wenn ich das c:forEach von 0-x mache und nur nen Text ausge ben will, dann wird der auch x mal ausgegeben.
Ich hab von der Methode getNewsItems() schon alle möglichen Sachen ausprobiert(als Vector zurückgeben, als NewsItem[] zurückgeben), aber nichts funktioniert.
Ich hab auch anstatt end="3" end="${pc_NewsView.anzahl}" ausprobiert.
Ach ja, zum ausgeben hab ich auch mal <c
ut value="${itm.text}"></c
ut> probiert, aber ich bekomme nur ein leeres Portlet angezeigt.
Wäre für Hilfe dankebar..ich hab schon alle möglichen Dokus studiert u.s.w.....
Hier sind die Code-Schnipsel:
NewsView.jsp:
Code:
<%-- jsf:codeBehind language="java" location="/JavaSource/pagecode/NewsView.java" --%><%-- /jsf:codeBehind --%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<%@ page
language="java"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
session="false"
%>
<portlet:defineObjects />
<f:view>
<c:forEach items="${pc_NewsView.newsItems}" var="itm" begin="0" end="3" step="1">
<c:out value="${itm.topic}"></c:out>
<c:out value="${itm.name}"></c:out>
<c:out value="${itm.text}"></c:out>
</c:forEach>
</f:view>
NewsView.java
Code:
/*
* Created on 01.01.2005
*
* To change the template for this generated file go to
* Window&Preferences&Java&Code Generation&Code and Comments
*/
package pagecode;
import java.util.ArrayList;
import java.util.Date;
import java.util.Vector;
/**
* @author Sebastian
*
* To change the template for this generated type comment go to
* Window&Preferences&Java&Code Generation&Code and Comments
*/
public class NewsView extends PageCodeBase {
private Vector newsItems;
private int anzahl;
public NewsView(){
anzahl = 0;
newsItems = new Vector();
addNewsItem(new NewsItem(1,"Sebastian", 1, "Erste News", 1, "Allgemein", "Hallo, erste News!", new Date(1,1,2005)));
addNewsItem(new NewsItem(1,"Sebastian", 1, "Erste News", 1, "Allgemein", "Hallo, erste News!", new Date(1,1,2005)));
addNewsItem(new NewsItem(1,"Sebastian", 1, "Erste News", 1, "Allgemein", "Hallo, erste News!", new Date(1,1,2005)));
addNewsItem(new NewsItem(1,"Sebastian", 1, "Erste News", 1, "Allgemein", "Hallo, erste News!", new Date(1,1,2005)));
anzahl=3;
}
public void addNewsItem(NewsItem e){
newsItems.add(e);
}
public ArrayList getNewsItems(){
ArrayList ar = new ArrayList();
for(int i=0;i<newsItems.size();i++){
ar.add(newsItems.get(i));
}
return ar;
}
public int getAnzahl(){
return anzahl;
}
}
NewsItem.java
Code:
/*;
* Created on 01.01.2005
*
* To change the template for this generated file go to
* Window&Preferences&Java&Code Generation&Code and Comments
*/
package pagecode;
import java.util.Date;
/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window&Preferences&Java&Code Generation&Code and Comments
*/
public class NewsItem {
private int dbId;
private String name;
private int name_id;
private String topic;
private int kat_id;
private String kat;
private String text;
private Date date;
public NewsItem(){}
public NewsItem(int db, String name, int name_id, String topic, int kat_id, String kat,
String text, Date date){
setDbId(db);
setName_id(name_id);
setName(name);
setTopic(topic);
setKat_id(kat_id);
setKat(kat);
setText(text);
setDate(date);
}
/**
* @return
*/
public int getDbId() {
return dbId;
}
/**
* @return
*/
public String getKat() {
return kat;
}
/**
* @return
*/
public int getKat_id() {
return kat_id;
}
/**
* @return
*/
public String getName() {
return name;
}
/**
* @return
*/
public int getName_id() {
return name_id;
}
/**
* @return
*/
public String getText() {
return text;
}
/**
* @return
*/
public String getTopic() {
return topic;
}
public Date getDate(){
return date;
}
/**
* @param i
*/
public void setDbId(int i) {
dbId = i;
}
/**
* @param string
*/
public void setKat(String string) {
kat = string;
}
/**
* @param i
*/
public void setKat_id(int i) {
kat_id = i;
}
/**
* @param string
*/
public void setName(String string) {
name = string;
}
/**
* @param i
*/
public void setName_id(int i) {
name_id = i;
}
/**
* @param string
*/
public void setText(String string) {
text = string;
}
/**
* @param string
*/
public void setTopic(String string) {
topic = string;
}
public void setDate(Date d){
date = d;
}
}
faces-config.xml
Code:
<?xml version="1.0"?>
<!--
Copyright 2003 Sun Microsystems, Inc. All rights reserved.
SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-->
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<lifecycle>
<phase-listener>com.ibm.faces.webapp.ValueResourcePhaseListener</phase-listener>
</lifecycle>
<factory>
<faces-context-factory>
com.ibm.faces.context.PortletFacesContextFactoryImpl</faces-context-factory>
</factory>
<managed-bean>
<managed-bean-name>pc_NewsView</managed-bean-name>
<managed-bean-class>pagecode.NewsView</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>pc_NewsEdit</managed-bean-name>
<managed-bean-class>pagecode.NewsEdit</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>
Wenn ich das Portlet aufrufe bekomme ich ne leere Seite angezeigt. Wenn ich das c:forEach von 0-x mache und nur nen Text ausge ben will, dann wird der auch x mal ausgegeben.
Ich hab von der Methode getNewsItems() schon alle möglichen Sachen ausprobiert(als Vector zurückgeben, als NewsItem[] zurückgeben), aber nichts funktioniert.
Ich hab auch anstatt end="3" end="${pc_NewsView.anzahl}" ausprobiert.
Ach ja, zum ausgeben hab ich auch mal <c
Wäre für Hilfe dankebar..ich hab schon alle möglichen Dokus studiert u.s.w.....