Guten Morgen!
Auch an Ostern schonen euch die Anfänger nicht *g*
Ich bin Anfänger und will jetzt Step-by-Step über JSF ein Projekt angehen. Angefangen damit dass ich mich mit JSF-Büchern rumgequält habe bin ich nun an der Stelle angelangt wo ich entsprechende Tutorials brauche, um mit dem JDBC-Driver eine mySQL Datenbanktabelle zu manipulieren bzw. ausgeben zu lassen.
Nach der Seite: Display Data from Database in JSF Application habe ich es erfolgreich geschafft auf die DB zu connecten und 4 Datensätze ausgeben zu lassen. Das erste Problem dass sich dabei stellt: ich habe in der Tabelle noch eine Spalte mit ID (key, autoincrement) die er als first_name ausgibt und der last_name wird in der Ausgabe zum username und so weiter.. der tauscht da wild durch.
Eine explizite Ausgabe sieht anders aus. Woran hängt das? Wie schaffe ich es, dass in first_name tatsächlich der erste Name steht, bei last_name der Nachname und bei username der entsprechende Nutzername drinsteht?
FirstName/ LastName / UserName
1 / Holowitz / Howard
2 / Cooper / Sheldon
Es müsste aber natürlich so sein:
FirstName/ LastName / UserName
Sheldon / Cooper / sheldonator
... usw
Meine verwendete JSP:
Meine verwendeten SQL-Statements:
Meine Javaklasse:
Meine web.xml:
(ich bin mir auch nicht so ganz sicher ob die angegeben config für die web.xml so richtig ist, k.A.)
und meine faces-config:
Die zweite Frage ist die große und wichtige die ich an euch richten will: Ich möchte nun einen Datensatz manipulieren (inputText-field und commandButton "senden") und dann bei erfolgreichem Abschicken auf eine neue Seite weitergeleitet werden. Mir ist wichtig die Logik zu lernen damit ich das entsprechend anwenden kann. Könnt ihr mir lauffähige Tutorials empfehlen? Ich finde dazu nix, mal fehlt die Beschreibung der faces-config (outcome-from success usw) mal fehlt die Beschreibung der Java-Klasse... GRUMMEL... HIiiiiiilfe
Ich bin für jede Hilfe dankbar!!!!!!!!!
Auch an Ostern schonen euch die Anfänger nicht *g*
Ich bin Anfänger und will jetzt Step-by-Step über JSF ein Projekt angehen. Angefangen damit dass ich mich mit JSF-Büchern rumgequält habe bin ich nun an der Stelle angelangt wo ich entsprechende Tutorials brauche, um mit dem JDBC-Driver eine mySQL Datenbanktabelle zu manipulieren bzw. ausgeben zu lassen.
Nach der Seite: Display Data from Database in JSF Application habe ich es erfolgreich geschafft auf die DB zu connecten und 4 Datensätze ausgeben zu lassen. Das erste Problem dass sich dabei stellt: ich habe in der Tabelle noch eine Spalte mit ID (key, autoincrement) die er als first_name ausgibt und der last_name wird in der Ausgabe zum username und so weiter.. der tauscht da wild durch.
Eine explizite Ausgabe sieht anders aus. Woran hängt das? Wie schaffe ich es, dass in first_name tatsächlich der erste Name steht, bei last_name der Nachname und bei username der entsprechende Nutzername drinsteht?
FirstName/ LastName / UserName
1 / Holowitz / Howard
2 / Cooper / Sheldon
Es müsste aber natürlich so sein:
FirstName/ LastName / UserName
Sheldon / Cooper / sheldonator
... usw
Meine verwendete JSP:
Code:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<f:view><html>
<head>
</head>
<body>
<center>
<br><br><br>
<h:dataTable id="dt1" value="#{tableBean.perInfoAll}" var="item" bgcolor="#F1F1F1" border="10" cellpadding="5" cellspacing="3" rows="4" width="50%" dir="LTR" frame="hsides" rules="all" summary="This is a JSF code to create dataTable." >
<f:facet name="header">
<h:outputText value="This is 'dataTable' demo" />
</f:facet>
<h:column>
<f:facet name="header">
<h:outputText value="First Name" />
</f:facet>
<h:outputText style="" value="#{item.firstName}" ></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Last Name"/>
</f:facet>
<h:outputText value="#{item.lastName}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Username"/>
</f:facet>
<h:outputText value="#{item.uname}"></h:outputText>
</h:column>
<f:facet name="footer">
<h:outputText value="The End" />
</f:facet>
</h:dataTable><br>
</center>
</body></html></f:view>
Meine verwendeten SQL-Statements:
SQL:
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL,
`last_name` varchar(50) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`first_name` varchar(50) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`username` varchar(50) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
KEY `id` (`id`),
KEY `last_name` (`last_name`)
)
INSERT INTO `user` (`id`, `last_name`, `first_name`, `username`) VALUES
(1, 'Holowitz', 'Howard', 'howdi'),
(2, 'Hofstetter', 'Lennard', 'lenni'),
(3, 'Kootrhapali', 'Rajesh', 'Ray'),
(4, 'Cooper', 'Sheldon', 'sheldonator');
Meine Javaklasse:
Java:
package roseindia;
import java.sql.*;
import java.util.*;
public class TableBean {
Connection con ;
Statement ps;
ResultSet rs;
private List perInfoAll = new ArrayList();
public List getperInfoAll() {
int i = 0;
try
{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/userdetail",
"root","");
ps = con.createStatement();
rs = ps.executeQuery("select * from user");
while(rs.next()){
System.out.println(rs.getString(1));
perInfoAll.add(i,new perInfo(rs.getString(1),rs.getString(2)
,rs.getString(3)));
i++;
}
}
catch (Exception e)
{
System.out.println("Error Data : " + e.getMessage());
}
return perInfoAll;
}
public class perInfo {
String uname;
String firstName;
String lastName;
public perInfo(String firstName,String lastName,String uname) {
this.uname = uname;
this.firstName = firstName;
this.lastName = lastName;
}
public String getUname() {
return uname;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
}
}
Meine web.xml:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<resource-ref>
<res-ref-name>jdbc/mydb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
und meine faces-config:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
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_2_0.xsd"
version="2.0">
<managed-bean>
<managed-bean-name>tableBean</managed-bean-name>
<managed-bean-class>roseindia.TableBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>
Die zweite Frage ist die große und wichtige die ich an euch richten will: Ich möchte nun einen Datensatz manipulieren (inputText-field und commandButton "senden") und dann bei erfolgreichem Abschicken auf eine neue Seite weitergeleitet werden. Mir ist wichtig die Logik zu lernen damit ich das entsprechend anwenden kann. Könnt ihr mir lauffähige Tutorials empfehlen? Ich finde dazu nix, mal fehlt die Beschreibung der faces-config (outcome-from success usw) mal fehlt die Beschreibung der Java-Klasse... GRUMMEL... HIiiiiiilfe
Ich bin für jede Hilfe dankbar!!!!!!!!!