A4j:repeat and rich:menuItem from SQL query
goompas Aug 13, 2008 9:20 AMHello
I wanna make menu thath have positions from SQL query.
I made bean that return ArrayList of strings from interesed database.
Now i wanna make menu with items equals to that arraylist.
returned arraylist from bean is
[Wybierz..., Antyczna, Demoniczna, Jadowita, Kasajaca, Kosciana, Krysztalowa, Lekka, Mistyczna, Okrutna, Opiekuncza, Ostra, Przekleta, Przyjacielska, Szybka, Wzmacniajaca, Zabojcza, Zatruta, Zebata, Zwinna, swiecaca]
When i use
<a4j:repeat id="detail" value="#{BeanListy.tprefixy}" var="detail">
<h:outputText value="#{BeanListy.tprefixy}"/>
</a4j:repeat>
i have on site
[Wybierz..., Antyczna, Demoniczna, Jadowita, Kasajaca, Kosciana, Krysztalowa, Lekka, Mistyczna, Okrutna, Opiekuncza, Ostra, Przekleta, Przyjacielska, Szybka, Wzmacniajaca, Zabojcza, Zatruta, Zebata, Zwinna, swiecaca][Wybierz..., Antyczna, Demoniczna, Jadowita, Kasajaca, Kosciana, Krysztalowa, Lekka, Mistyczna, Okrutna, Opiekuncza, Ostra, Przekleta, Przyjacielska, Szybka, Wzmacniajaca, Zabojcza, Zatruta, Zebata, Zwinna, swiecaca][Wybierz..., Antyczna, Demoniczna, Jadowita, Kasajaca, Kosciana, Krysztalowa, Lekka, Mistyczna, Okrutna, Opiekuncza, Ostra, Przekleta, Przyjacielska, Szybka, Wzmacniajaca, Zabojcza, Zatruta, Zebata, Zwinna, swiecaca][Wybierz..., Antyczna, Demoniczna, Jadowita, Kasajaca, Kosciana, Krysztalowa, Lekka, Mistyczna, Okrutna, Opiekuncza, Ostra, Przekleta, Przyjacielska, Szybka, Wzmacniajaca, Zabojcza, Zatruta, Zebata, Zwinna, swiecaca][Wybierz..., Antyczna, Demoniczna, Jadowita, Kasajaca, Kosciana, Krysztalowa, Lekka, Mistyczna, Okrutna, Opiekuncza, Ostra, Przekleta, Przyjacielska, Szybka, Wzmacniajaca, Zabojcza, Zatruta, Zebata, Zwinna, swiecaca][Wybierz..., Antyczna, Demoniczna, Jadowita, Kasajaca, Kosciana, Krysztalowa, Lekka, Mistyczna, Okrutna, Opiekuncza, Ostra, Przekleta, Przyjacielska, Szybka, Wzmacniajaca, Zabojcza, Zatruta, Zebata, Zwinna, swiecaca]
etc
when i use
<a4j:repeat id="detail" value="#{BeanListy.tprefixy}" var="detail">
<h:outputText value="#{detail.tprefixy}"/>
</a4j:repeat>
i have this error:
javax.servlet.ServletException: The class 'java.lang.String' does not have the property 'tprefixy'
Its seems that iterator work protertly but how print on the screen one string from this arraylist not whole arraylist?
c:foreach dont work, i get empty page.
Here are my files:
konkretnepolaczenie.jsp
<%--
Document : konkretnepolaczenie
Created on : 2008-08-13, 12:56:38
--%>
<%@taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<jsp:useBean class="org.my.richfaces.BeanListy" id="data">
</jsp:useBean>
<h:form>
<h:panelGrid>
<rich:dropDownMenu value="Option1"
submitMode="none" direction="bottom-right" jointPoint="tr">
<c:forEach items="#{data.tprefixy}" var="zm">
<c:out value="1111 #{zm}"/>
<h:outputText value="222 #{zm}" />
<rich:menuItem value="#{zm}" />
</c:forEach>
<rich:menuItem value="Suboption1-1" />
<rich:menuItem value="Suboption1-2" />
<rich:menuItem value="Suboption1-3" />
</rich:dropDownMenu>
<a4j:repeat id="detail" value="#{BeanListy.tprefixy}" var="detail">
<h:outputText value="#{BeanListy.tprefixy}"/>
</a4j:repeat>
</h:panelGrid>
</h:form>
</body>
</html>
BeanListy.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.my.richfaces;
import com.midnightcookies.taghandlers.*;
import java.beans.*;
import java.io.Serializable;
import java.util.ArrayList;
/**
* @author Paweł
*/
public class BeanListy extends Object implements Serializable {
public static final String PROP_SAMPLE_PROPERTY = "sampleProperty";
private PropertyChangeSupport propertySupport;
protected String jakatablica;
protected ArrayList tprefixy;
/**
* Get the value of tprefixy
*
* @return the value of tprefixy
*/
public ArrayList getTprefixy() {
return tprefixy;
}
/**
* Set the value of tprefixy
*
* @param tprefixy new value of tprefixy
*/
public void setTprefixy(ArrayList tprefixy) {
this.tprefixy = tprefixy;
}
public BeanListy() {
ArrayList tmp = new ArrayList();
propertySupport = new PropertyChangeSupport(this);
listy dane = new listy();
tmp=dane.PobierziPosortuj();
setTprefixy(tmp);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertySupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertySupport.removePropertyChangeListener(listener);
}
}
faces-config.xml
<?xml version='1.0' encoding='UTF-8'?> <!-- =========== FULL CONFIGURATION FILE ================================== --> <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> <managed-bean> <managed-bean-name>richFacesBean</managed-bean-name> <managed-bean-class>org.my.richfaces.RichFacesBean</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>BeanListy</managed-bean-name> <managed-bean-class>org.my.richfaces.BeanListy</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <navigation-rule> <from-view-id>faces/strony/wstep1.xhtml</from-view-id> <navigation-case> <from-outcome>next</from-outcome> <to-view-id>faces/strony/wstep1.xhtml</to-view-id> </navigation-case> </navigation-rule> </faces-config>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><context-param><param-name>com.sun.faces.verifyObjects</param-name><param-value>false</param-value></context-param><context-param><param-name>com.sun.faces.validateXml</param-name><param-value>true</param-value></context-param><context-param><param-name>javax.faces.STATE_SAVING_METHOD</param-name><param-value>client</param-value></context-param> <filter> <display-name>RichFaces Filter</display-name> <filter-name>richfaces</filter-name> <filter-class>org.ajax4jsf.Filter</filter-class> </filter> <filter-mapping> <filter-name>richfaces</filter-name> <servlet-name>Faces Servlet</servlet-name> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> </filter-mapping> <servlet><servlet-name>Faces Servlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>/faces/*</url-pattern></servlet-mapping><session-config><session-timeout> 30 </session-timeout></session-config> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param> <context-param> <param-name>org.richfaces.SKIN</param-name> <param-value>blueSky</param-value> </context-param> <welcome-file-list> <welcome-file>faces/index.jsp</welcome-file> </welcome-file-list> </web-app>