tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
704
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Masterpurzel
    Masterpurzel Masterpurzel ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Ort
    Vienna, Austria, Austria
    Beiträge
    52
    Hallo,

    ich hoffe es kann mir hier jemand helfen. Mein Problem:

    Ich habe in JSF 2.0 ein Datatable. Diese habe ich mit einer Bean verbunden. Er gibt mir auch das aus was ich will, nur er gibt mir den Inhalt zwei mal aus, d.h.

    Allgemein
    Support
    ...
    Allgemein
    Support
    ...
    Was muss ich machen, damit das nur einmal auftaucht, also so:

    Allgemein
    Support
    ...
    Falls Code gewünscht ist, bitte bescheid geben! Danke

    PS: er gibt mir aus dem array (Inhalte) die richtige Anzahl der Zeilen aus, in meinem Fall 9, nur anzeigen tut er 18!

    MfG

    Masterpurzel
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hey,

    wenn der Inhalt aus dem Array stimmt, dann wirst du die Ausgabe wahrscheinlich zwei mal machen. Zeig mal den Code, wo du den Inhalt in dem Array übergeben bekommst, bis zu der zweiten Ausgabe.

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  3. #3
    Avatar von Masterpurzel
    Masterpurzel Masterpurzel ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Ort
    Vienna, Austria, Austria
    Beiträge
    52
    Hier die Bean:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    
    int rows;
        String timestamp;
        String[] timestamp_ = new String[6];
        String datum;
        String zeit;
        ResultSet rs;
     
    public List getForum_ansicht() {
            int i = 0;
            try{
                Class.forName(db_driver);
                try{
                    Connection db = DriverManager.getConnection(db_url, db_username, db_password);
                    if(req.getParameter("forumID") == null && req.getParameter("threadID") == null) {
                        String rowStatement = "SELECT id FROM forum_foren";
                        PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                        ResultSet row_rs = row_prepStmt.executeQuery();
                        row_rs.next();
                        row_rs.last();
                        rows = row_rs.getRow();
                        String selectStatement = "SELECT id, titel FROM forum_foren";
                        PreparedStatement select_prepStmt = db.prepareStatement(selectStatement);
                        rs = select_prepStmt.executeQuery();
                        while(rs.next()) {
                            array.add(i, new forum_ansicht_spalten(rs.getInt("id"), rs.getString("titel")));
                            i++;
                        }
                    } else if(req.getParameter("forumID") != null && Integer.parseInt(req.getParameter("forumID")) > 0 && req.getParameter("threadID") == null) {
                        String rowStatement = "SELECT id, forenid FROM forum_threads WHERE forenid = ?";
                        PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                        row_prepStmt.setString(1, req.getParameter("forumID"));
                        ResultSet row_rs = row_prepStmt.executeQuery();
                        row_rs.next();
                        row_rs.last();
                        rows = row_rs.getRow();
                        String selectStatement = "SELECT id, titel, forenid FROM forum_threads WHERE forenid = ? ORDER BY timestamp_edit DESC";
                        PreparedStatement select_prepStmt = db.prepareStatement(selectStatement);
                        select_prepStmt.setString(1, req.getParameter("forumID"));
                        rs = select_prepStmt.executeQuery();
                        while(rs.next()) {
                            array.add(i, new forum_ansicht_spalten(rs.getInt("id"), rs.getString("titel"), rs.getInt("forenid")));
                            i++;
                        }
                    } else if(req.getParameter("forumID") != null && Integer.parseInt(req.getParameter("forumID")) > 0  && req.getParameter("threadID") != null && Integer.parseInt(req.getParameter("threadID")) > 0) {
                        String rowStatement = "SELECT id, forenid, threadid FROM forum_messages WHERE forenid = ? AND threadid = ?";
                        PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                        row_prepStmt.setString(1, req.getParameter("forumID"));
                        row_prepStmt.setString(2, req.getParameter("threadID"));
                        ResultSet row_rs = row_prepStmt.executeQuery();
                        row_rs.next();
                        row_rs.last();
                        rows = row_rs.getRow();
                        String selectStatement = "SELECT forum_messages.id AS forum_messages_id, forum_messages.titel, forum_messages.forenid, forum_messages.threadid, forum_messages.message, forum_messages.userid, forum_messages.userid_edit, forum_messages.timestamp_create, forum_messages.timestamp_edit, users.id AS forum_users_id, users.username, users.profil_image FROM forum_messages, users WHERE forum_messages.forenid = ? AND forum_messages.threadid = ? AND forum_messages.userid = users.id ORDER BY forum_messages.timestamp_create ASC";
                        PreparedStatement select_prepStmt = db.prepareStatement(selectStatement);
                        select_prepStmt.setString(1, req.getParameter("forumID"));
                        select_prepStmt.setString(2, req.getParameter("threadID"));
                        rs = select_prepStmt.executeQuery();
                        while(rs.next()) {
                            timestamp = new Date(rs.getLong("timestamp_create")*1000).toString();
                            timestamp_ = timestamp.split(" ");
                            if(timestamp_[0].equals("Sun")) {
                                timestamp_[0] = "Sonntag";
                            } else if(timestamp_[0].equals("Mon")) {
                                timestamp_[0] = "Montag";
                            } else if(timestamp_[0].equals("Thu")) {
                                timestamp_[0] = "Dienstag";
                            } else if(timestamp_[0].equals("Wed")) {
                                timestamp_[0] = "Mittwoch";
                            } else if(timestamp_[0].equals("Thur")) {
                                timestamp_[0] = "Donnerstag";
                            } else if (timestamp_[0].equals("Fri")) {
                                timestamp_[0] = "Freitag";
                            } else if(timestamp_[0].equals("Sat")) {
                                timestamp_[0] = "Samstag";
                            }
                            if(timestamp_[1].equals("Jan")) {
                                timestamp_[1] = "01";
                            } else if(timestamp_[1].equals("Feb")) {
                                timestamp_[1] = "02";
                            } else if(timestamp_[1].equals("Mar")) {
                                timestamp_[1] = "03";
                            } else if(timestamp_[1].equals("Apr")) {
                                timestamp_[1] = "04";
                            } else if(timestamp_[1].equals("May")) {
                                timestamp_[1] = "05";
                            } else if (timestamp_[1].equals("Jun")) {
                                timestamp_[1] = "06";
                            } else if(timestamp_[1].equals("July")) {
                                timestamp_[1] = "07";
                            } else if(timestamp_[1].equals("Aug")) {
                                timestamp_[1] = "08";
                            } else if(timestamp_[1].equals("Sept")) {
                                timestamp_[1] = "09";
                            } else if(timestamp_[1].equals("Oct")) {
                                timestamp_[1] = "10";
                            } else if(timestamp_[1].equals("Nov")) {
                                timestamp_[1] = "11";
                            } else if(timestamp_[1].equals("Dec")) {
                                timestamp_[1] = "12";
                            }
                            datum = timestamp_[0] + ", " + timestamp_[2] + "." + timestamp_[1] + "." + timestamp_[5];
                            zeit = timestamp_[3];
                            array.add(i, new forum_ansicht_spalten(rs.getInt("forum_messages_id"), datum, zeit, rs.getString("forum_messages.titel"), rs.getString("forum_messages.message"), rs.getString("users.username"), rs.getString("users.profil_image")));
                            i++;
                        }
                    }
                    rs.close();
                    db.close();
                } catch(Exception db_error) {
                    System.out.println(db_error);
                }
            } catch(Exception db_driver_error) {
                System.out.println(db_driver_error);
            }
            return array;
        }

    und hier die Datatable:

    HTML-Code:
    <h:dataTable id="forum" value="#{Forum__frontend.forum_ansicht}" var="item" bgcolor="#F1F1F1" border="10" cellpadding="5" cellspacing="3" first="#{Forum__frontend.first}" rows="5" width="100%" dir="LTR" frame="hsides" rules="all" summary="This is a JSF code to create dataTable.">
    Ich hoffe es war das, was du gemeint hast.

    MfG

    Masterpurzel
     

  4. #4
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    In welcher If-Abfrage tritt die doppelte Ausgabe auf? In allen dreien oder nur in einer bestimmten?
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  5. #5
    Avatar von Masterpurzel
    Masterpurzel Masterpurzel ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Ort
    Vienna, Austria, Austria
    Beiträge
    52
    Zitat Zitat von Fabio Hellmann Beitrag anzeigen
    In welcher If-Abfrage tritt die doppelte Ausgabe auf? In allen dreien oder nur in einer bestimmten?
    In allen dreien!
     

  6. #6
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Naja... ich würde mal sagen, dass das daran liegt, dass du in allen dreien If-Bedingungen jeweils 2 mal einen DB-Statement ausführst.

    1. Hier fragst du nur die ID ab...
    Code java:
    1
    2
    3
    
    String rowStatement = "SELECT id FROM forum_foren";
    PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
    ResultSet row_rs = row_prepStmt.executeQuery();
    2. und hier fragst du die ID nochmal mit dem Titel ab...
    Code java:
    1
    2
    3
    
    String selectStatement = "SELECT id, titel FROM forum_foren";
    PreparedStatement select_prepStmt = db.prepareStatement(selectStatement);
    rs = select_prepStmt.executeQuery();
    dann würde es doch eine Abfrage auch tun oder nicht?
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  7. #7
    Avatar von Masterpurzel
    Masterpurzel Masterpurzel ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Ort
    Vienna, Austria, Austria
    Beiträge
    52
    Zitat Zitat von Fabio Hellmann Beitrag anzeigen
    Naja... ich würde mal sagen, dass das daran liegt, dass du in allen dreien If-Bedingungen jeweils 2 mal einen DB-Statement ausführst.

    dann würde es doch eine Abfrage auch tun oder nicht?
    Naja das erste ist ja nur dazu gedacht gewesen, die Anzahl der Elemente auszugeben, aber ich glaube dass das der Grund sein kann, wie du schon vermutest...

    Ich probiere es mal ohne der ersten Abfrage und melde mich dann wieder

    MfG

    Masterpurzel

    €dit: lag leider nicht daran!
    Geändert von Masterpurzel (05.11.11 um 16:24 Uhr)
     

  8. #8
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Ok, das dachte ich mir schon fast. Aber ich würde dir drotzdem empfehlen die 2 Statements zu einem zusammen zu fassen, aufgrund von Performanceeinsparungen.

    Soweit ich das jetzt berurteilen kann, liegt der Fehler nicht in diesem Code-Abschnitt. Kannst du noch den Code posten, in dem die Methode 'getForum_ansicht' aufgerufen wird?
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  9. #9
    Avatar von Masterpurzel
    Masterpurzel Masterpurzel ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Ort
    Vienna, Austria, Austria
    Beiträge
    52
    Das wäre diese hier in der jsp:

    HTML-Code:
    <h:dataTable id="forum" value="#{Forum__frontend.forum_ansicht}" var="item" bgcolor="#F1F1F1" border="10" cellpadding="5" cellspacing="3" first="#{Forum__frontend.first}" rows="5" width="100%" dir="LTR" frame="hsides" rules="all" summary="This is a JSF code to create dataTable.">
    ...
    </h:dataTable>
    in java wird sie nirgends mehr aufgerufen, nur in der jsp bzw. in der faces-config.xml definiert:

    Code :
    1
    2
    3
    4
    5
    
    <managed-bean>
                <managed-bean-name>Forum__frontend</managed-bean-name>
                <managed-bean-class>de.pcpowerplay.frontend.forum.forum_ansicht</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
            </managed-bean>
     

  10. #10
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Mh... der Fehler muss eigentlich irgendwo im JSP liegen, wobei ich momentan keinen finden kann. Kannst du noch ein wenig mehr von der JSP preis geben? Weil an dem kleinen Schnipsel liegt das Problem meiner Ansicht nach nicht.
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  11. #11
    Avatar von Masterpurzel
    Masterpurzel Masterpurzel ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Ort
    Vienna, Austria, Austria
    Beiträge
    52
    Zitat Zitat von Fabio Hellmann Beitrag anzeigen
    Mh... der Fehler muss eigentlich irgendwo im JSP liegen, wobei ich momentan keinen finden kann. Kannst du noch ein wenig mehr von der JSP preis geben? Weil an dem kleinen Schnipsel liegt das Problem meiner Ansicht nach nicht.
    Ok, hier das ganze datatable:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    
    <h:dataTable id="forum" value="#{Forum__frontend.forum_ansicht}" var="item" bgcolor="#F1F1F1" border="10" cellpadding="5" cellspacing="3" first="#{Forum__frontend.first}" rows="5" width="100%" dir="LTR" frame="hsides" rules="all" summary="This is a JSF code to create dataTable.">
                            <f:facet name="header">
                                <%
                                if(request.getParameter("forumID") == null && request.getParameter("threadID") == null) {
                                    %><h:outputText value="#{Forum__frontend.rows} Foren"></h:outputText><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") == null) {
                                    %><h:outputText value="#{Forum__frontend.rows} Themen"></h:outputText><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") != null) {
                                    %><h:outputText value="#{Forum__frontend.rows} Beiträge"></h:outputText><%
                                }
                                %>
                            </f:facet>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value=""></h:outputText>
                                </f:facet>
                                <%
                                if(request.getParameter("forumID") == null && request.getParameter("threadID") == null) {
                                    %><h:outputText value=""></h:outputText><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") == null) {
                                    %><h:outputText value=""></h:outputText><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") != null) {
                                    %><h:outputText value="#{item.username}"></h:outputText><br /><h:graphicImage alt="Profil-Image" url="./resources/images/user/#{item.profil_image}" width="70" height="60" rendered="#{item.profil_image != null}"></h:graphicImage><h:graphicImage alt="Profil-Image" url="./resources/images/user/default.jpg" rendered="#{item.profil_image eq null}"></h:graphicImage><%
                                }
                                %>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Titel"></h:outputText>
                                </f:facet>
                                <%
                                if(request.getParameter("forumID") == null && request.getParameter("threadID") == null) {
                                    %><h:form id="commandLinkForum"><h:commandLink value="#{item.titel}" action="#{Forum__frontend.goToForum}"><f:param name="forumid" value="#{item.id}" /></h:commandLink></h:form><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") == null) {
                                    %><h:form id="commandLinkThread"><h:commandLink value="#{item.titel}" action="#{Forum__frontend.goToThread}"><f:param name="forumid" value="#{item.forumid}" /><f:param name="threadid" value="#{item.id}" /></h:commandLink></h:form><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") != null) {
                                    %>
                                    <h2><h:outputText value="#{item.datum}"></h:outputText>, <h:outputText value="#{item.zeit}"></h:outputText> | <h:outputText value="#{item.titel}"></h:outputText></h2>
                                    <h:outputText value="#{item.message}" escape="false"></h:outputText>
                                    <br />
                                    <h:outputLink value="forum.faces?edit=#{item.id}" rendered="#{item.username eq Login_Logout.username}"><h:outputText value="Bearbeiten"></h:outputText></h:outputLink>
                                    <%
                                }
                                %>
                            </h:column>
                            <%
                            if(request.getParameter("forumID") == null && request.getParameter("threadID") == null) {
                                %>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="Anzahl Themen" />
                                    </f:facet>
                                    <h:outputText value="1"></h:outputText>
                                </h:column>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="Moderatoren"></h:outputText>
                                    </f:facet>
                                    <h:outputText value="admin"></h:outputText>
                                </h:column>
                                <%
                            } else if(request.getParameter("forumID") != null && request.getParameter("threadID") == null) {
                                %>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="Anzahl Beitr&auml;ge" escape="false"></h:outputText>
                                    </f:facet>
                                    <h:outputText value="1"></h:outputText>
                                </h:column>
                                <%
                            } else if(request.getParameter("forumID") != null && request.getParameter("threadID") != null) {
                                %>
                                
                                <%
                            }
                            %>
                            <f:facet name="footer">
                                <h:panelGroup>
                                    <h:form>
                                        <h:commandButton value="Zurück" action="#{Forum__frontend.zurueck}" rendered="#{pricelistBean.zurueckVisible}" />
                                        <h:commandButton value="Weiter" action="#{Forum__frontend.weiter}" rendered="#{pricelistBean.weiterVisible}" />
                                    </h:form>
                                    Test Anzahl Reihen: <h:outputText value="#{Forum__frontend.test}"></h:outputText>
                                </h:panelGroup>
                            </f:facet>
                        </h:dataTable>
     

  12. #12
    Avatar von Masterpurzel
    Masterpurzel Masterpurzel ist offline Mitglied Silber
    Registriert seit
    Apr 2007
    Ort
    Vienna, Austria, Austria
    Beiträge
    52
    Hallo,

    mir wurde vor ca. einer Stunde ein Tipp gegeben, das mein Array falsch aufgebaut ist!

    Damit die anderen, die an der gleichen Stelle hängen auch die Lösung haben, werde ich den Quelltext hier mal posten:

    ForumBean: (wichtig: Zeile 85, 87, 104, 196)
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    
    package de.pcpowerplay.frontend.forum;
     
    import java.io.IOException;
    import java.io.Serializable;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.Map;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.faces.context.FacesContext;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    /**
     *
     * @author purzel
     */
    public class forum implements Serializable {
        /**
         * Datenbank
         */
        final String db_driver = "com.mysql.jdbc.Driver";
        final String db_url = "jdbc:mysql://000.000.000.000:3306/pcpowerplay";
        final String db_username = "username";
        final String db_password = "password";
     
        int first;
        int rows;
        String timestamp;
        String[] timestamp_ = new String[6];
        String datum;
        String zeit;
        ResultSet rs;
        private List array = new ArrayList();
     
        HttpServletRequest req = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
        HttpServletResponse res = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
     
        public int count() {
            try{
                Class.forName(db_driver);
                try{
                    Connection db = DriverManager.getConnection(db_url, db_username, db_password);
                    if(req.getParameter("forumID") == null && req.getParameter("threadID") == null) {
                        String rowStatement = "SELECT id FROM forum_foren";
                        PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                        ResultSet row_rs = row_prepStmt.executeQuery();
                        row_rs.next();
                        row_rs.last();
                        rows = row_rs.getRow();
                    } else if(req.getParameter("forumID") != null && Integer.parseInt(req.getParameter("forumID")) > 0 && req.getParameter("threadID") == null) {
                        String rowStatement = "SELECT id, forenid FROM forum_threads WHERE forenid = ?";
                        PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                        row_prepStmt.setString(1, req.getParameter("forumID"));
                        ResultSet row_rs = row_prepStmt.executeQuery();
                        row_rs.next();
                        row_rs.last();
                        rows = row_rs.getRow();
                    } else if(req.getParameter("forumID") != null && Integer.parseInt(req.getParameter("forumID")) > 0  && req.getParameter("threadID") != null && Integer.parseInt(req.getParameter("threadID")) > 0) {
                        String rowStatement = "SELECT id, forenid, threadid FROM forum_messages WHERE forenid = ? AND threadid = ?";
                        PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                        row_prepStmt.setString(1, req.getParameter("forumID"));
                        row_prepStmt.setString(2, req.getParameter("threadID"));
                        ResultSet row_rs = row_prepStmt.executeQuery();
                        row_rs.next();
                        row_rs.last();
                        rows = row_rs.getRow();
                    }
                    rs.close();
                    db.close();
                } catch(Exception db_error) {
                    System.out.println(db_error);
                }
            } catch(Exception db_driver_error) {
                System.out.println(db_driver_error);
            }
            return rows;
        }
     
        private forum_spalten[] forum = new forum_spalten[count()];
     
        public forum_spalten[] getForum() {
            int i = 0;
            try{
                Class.forName(db_driver);
                try{
                    Connection db = DriverManager.getConnection(db_url, db_username, db_password);
                    if(req.getParameter("forumID") == null && req.getParameter("threadID") == null) {
                        /*String rowStatement = "SELECT id FROM forum_foren";
                        PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                        ResultSet row_rs = row_prepStmt.executeQuery();
                        row_rs.next();
                        row_rs.last();
                        rows = row_rs.getRow();*/
                        String selectStatement = "SELECT id, titel FROM forum_foren";
                        PreparedStatement select_prepStmt = db.prepareStatement(selectStatement);
                        rs = select_prepStmt.executeQuery();
                        while(rs.next()) {
                            forum[i] = new forum_spalten(rs.getInt("id"), rs.getString("titel"));
                            array.add(i, new forum_spalten(rs.getInt("id"), rs.getString("titel")));
                            i++;
                        }
                    } else if(req.getParameter("forumID") != null && Integer.parseInt(req.getParameter("forumID")) > 0 && req.getParameter("threadID") == null) {
                        /*String rowStatement = "SELECT id, forenid FROM forum_threads WHERE forenid = ?";
                        PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                        row_prepStmt.setString(1, req.getParameter("forumID"));
                        ResultSet row_rs = row_prepStmt.executeQuery();
                        row_rs.next();
                        row_rs.last();
                        rows = row_rs.getRow();*/
                        String selectStatement = "SELECT id, titel, forenid FROM forum_threads WHERE forenid = ? ORDER BY timestamp_edit DESC";
                        PreparedStatement select_prepStmt = db.prepareStatement(selectStatement);
                        select_prepStmt.setString(1, req.getParameter("forumID"));
                        rs = select_prepStmt.executeQuery();
                        while(rs.next()) {
                            array.add(i, new forum_spalten(rs.getInt("id"), rs.getString("titel"), rs.getInt("forenid")));
                            i++;
                        }
                    } else if(req.getParameter("forumID") != null && Integer.parseInt(req.getParameter("forumID")) > 0  && req.getParameter("threadID") != null && Integer.parseInt(req.getParameter("threadID")) > 0) {
                        /*String rowStatement = "SELECT id, forenid, threadid FROM forum_messages WHERE forenid = ? AND threadid = ?";
                        PreparedStatement row_prepStmt = db.prepareStatement(rowStatement);
                        row_prepStmt.setString(1, req.getParameter("forumID"));
                        row_prepStmt.setString(2, req.getParameter("threadID"));
                        ResultSet row_rs = row_prepStmt.executeQuery();
                        row_rs.next();
                        row_rs.last();
                        rows = row_rs.getRow();*/
                        String selectStatement = "SELECT forum_messages.id AS forum_messages_id, forum_messages.titel, forum_messages.forenid, forum_messages.threadid, forum_messages.message, forum_messages.userid, forum_messages.userid_edit, forum_messages.timestamp_create, forum_messages.timestamp_edit, users.id AS forum_users_id, users.username, users.profil_image FROM forum_messages, users WHERE forum_messages.forenid = ? AND forum_messages.threadid = ? AND forum_messages.userid = users.id ORDER BY forum_messages.timestamp_create ASC";
                        PreparedStatement select_prepStmt = db.prepareStatement(selectStatement);
                        select_prepStmt.setString(1, req.getParameter("forumID"));
                        select_prepStmt.setString(2, req.getParameter("threadID"));
                        rs = select_prepStmt.executeQuery();
                        while(rs.next()) {
                            timestamp = new Date(rs.getLong("timestamp_create")*1000).toString();
                            timestamp_ = timestamp.split(" ");
                            if(timestamp_[0].equals("Sun")) {
                                timestamp_[0] = "Sonntag";
                            } else if(timestamp_[0].equals("Mon")) {
                                timestamp_[0] = "Montag";
                            } else if(timestamp_[0].equals("Thu")) {
                                timestamp_[0] = "Dienstag";
                            } else if(timestamp_[0].equals("Wed")) {
                                timestamp_[0] = "Mittwoch";
                            } else if(timestamp_[0].equals("Thur")) {
                                timestamp_[0] = "Donnerstag";
                            } else if (timestamp_[0].equals("Fri")) {
                                timestamp_[0] = "Freitag";
                            } else if(timestamp_[0].equals("Sat")) {
                                timestamp_[0] = "Samstag";
                            }
                            if(timestamp_[1].equals("Jan")) {
                                timestamp_[1] = "01";
                            } else if(timestamp_[1].equals("Feb")) {
                                timestamp_[1] = "02";
                            } else if(timestamp_[1].equals("Mar")) {
                                timestamp_[1] = "03";
                            } else if(timestamp_[1].equals("Apr")) {
                                timestamp_[1] = "04";
                            } else if(timestamp_[1].equals("May")) {
                                timestamp_[1] = "05";
                            } else if (timestamp_[1].equals("Jun")) {
                                timestamp_[1] = "06";
                            } else if(timestamp_[1].equals("July")) {
                                timestamp_[1] = "07";
                            } else if(timestamp_[1].equals("Aug")) {
                                timestamp_[1] = "08";
                            } else if(timestamp_[1].equals("Sept")) {
                                timestamp_[1] = "09";
                            } else if(timestamp_[1].equals("Oct")) {
                                timestamp_[1] = "10";
                            } else if(timestamp_[1].equals("Nov")) {
                                timestamp_[1] = "11";
                            } else if(timestamp_[1].equals("Dec")) {
                                timestamp_[1] = "12";
                            }
                            datum = timestamp_[0] + ", " + timestamp_[2] + "." + timestamp_[1] + "." + timestamp_[5];
                            zeit = timestamp_[3];
                            array.add(i, new forum_spalten(rs.getInt("forum_messages_id"), datum, zeit, rs.getString("forum_messages.titel"), rs.getString("forum_messages.message"), rs.getString("users.username"), rs.getString("users.profil_image")));
                            i++;
                        }
                    }
                    rs.close();
                    db.close();
                } catch(Exception db_error) {
                    System.out.println(db_error);
                }
            } catch(Exception db_driver_error) {
                System.out.println(db_driver_error);
            }
            //return array;
            return forum;
        }
     
        public void goToForum() {
            FacesContext context = FacesContext.getCurrentInstance();
            Map requestMap = context.getExternalContext().getRequestParameterMap();
            String s_forumid = (String)requestMap.get("forumid");
            int forumid = Integer.parseInt(s_forumid);
            try {
                FacesContext.getCurrentInstance().getExternalContext().redirect("forum.faces?forumID=" + forumid);
            } catch (IOException ex) {
                Logger.getLogger(forum.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
     
        public void goToThread() {
            FacesContext context = FacesContext.getCurrentInstance();
            Map requestMap = context.getExternalContext().getRequestParameterMap();
            String s_forumid = (String)requestMap.get("forumid");
            String s_threadid = (String)requestMap.get("threadid");
            int forumid = Integer.parseInt(s_forumid);
            int threadid = Integer.parseInt(s_threadid);
            try {
                FacesContext.getCurrentInstance().getExternalContext().redirect("forum.faces?forumID=" + forumid + "&threadID=" + threadid);
            } catch (IOException ex) {
                Logger.getLogger(forum.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
     
        public String weiter() {
            first = first + 9;
            if(first > array.size()) {
                first = array.size() - 9;
            }
            return null;
        }
     
        public String zurueck() {
            first = first - 9;
            if(first < 0) {
                first = 0;
            }
            return null;
        }
     
        public boolean weiterVisible() {
            if(first > array.size()) {
                return false;
            } else {
                return true;
            }
        }
        
        public boolean zurueckVisible() {
            if(first < 0) {
                return false;
            } else {
                return true;
            }
        }
     
        public int getRows() {
            return rows;
        }
     
        public void setRows(int rows) {
            this.rows = rows;
        }
     
        public int getFirst() {
            return first;
        }
     
        public int getTest() {
            return array.size();
        }
     
        public String getForumid() {
            return req.getParameter("forumID");
        }
        
        public void goToNewTopic() {
            try {
                FacesContext.getCurrentInstance().getExternalContext().redirect("forum__new_topic.faces");
            } catch (IOException ex) {
                Logger.getLogger(forum.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
     
        public void goToNewArticle() {
            try {
                FacesContext.getCurrentInstance().getExternalContext().redirect("forum__new_article.faces");
            } catch (IOException ex) {
                Logger.getLogger(forum.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    forum.jsp: (Auszug)
    HTML-Code:
    <h:dataTable id="forum" value="#{Forum__frontend.forum}" var="item" bgcolor="#F1F1F1" border="10" cellpadding="5" cellspacing="3" first="#{Forum__frontend.first}" rows="15" width="100%" dir="LTR" frame="hsides" rules="all" summary="This is a JSF code to create dataTable.">
                            <f:facet name="header">
                                <%
                                if(request.getParameter("forumID") == null && request.getParameter("threadID") == null) {
                                    %><h:outputText value="#{Forum__frontend.rows} Foren"></h:outputText><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") == null) {
                                    %><h:outputText value="#{Forum__frontend.rows} Themen"></h:outputText><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") != null) {
                                    %><h:outputText value="#{Forum__frontend.rows} Beiträge"></h:outputText><%
                                }
                                %>
                            </f:facet>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value=""></h:outputText>
                                </f:facet>
                                <%
                                if(request.getParameter("forumID") == null && request.getParameter("threadID") == null) {
                                    %><h:outputText value=""></h:outputText><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") == null) {
                                    %><h:outputText value=""></h:outputText><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") != null) {
                                    %><h:outputText value="#{item.username}"></h:outputText><br /><h:graphicImage alt="Profil-Image" url="./resources/images/user/#{item.profil_image}" width="70" height="60" rendered="#{item.profil_image != null}"></h:graphicImage><h:graphicImage alt="Profil-Image" url="./resources/images/user/default.jpg" rendered="#{item.profil_image eq null}"></h:graphicImage><%
                                }
                                %>
                            </h:column>
                            <h:column>
                                <f:facet name="header">
                                    <h:outputText value="Titel"></h:outputText>
                                </f:facet>
                                <%
                                if(request.getParameter("forumID") == null && request.getParameter("threadID") == null) {
                                    %><h:form id="commandLinkForum"><h:commandLink value="#{item.titel}" action="#{Forum__frontend.goToForum}"><f:param name="forumid" value="#{item.id}" /></h:commandLink></h:form><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") == null) {
                                    %><h:form id="commandLinkThread"><h:commandLink value="#{item.titel}" action="#{Forum__frontend.goToThread}"><f:param name="forumid" value="#{item.forumid}" /><f:param name="threadid" value="#{item.id}" /></h:commandLink></h:form><%
                                } else if(request.getParameter("forumID") != null && request.getParameter("threadID") != null) {
                                    %>
                                    <h2><h:outputText value="#{item.datum}"></h:outputText>, <h:outputText value="#{item.zeit}"></h:outputText> | <h:outputText value="#{item.titel}"></h:outputText></h2>
                                    <h:outputText value="#{item.message}" escape="false"></h:outputText>
                                    <br />
                                    <h:outputLink value="forum.faces?edit=#{item.id}" rendered="#{item.username eq Login_Logout.username}"><h:outputText value="Bearbeiten"></h:outputText></h:outputLink>
                                    <%
                                }
                                %>
                            </h:column>
                            <%
                            if(request.getParameter("forumID") == null && request.getParameter("threadID") == null) {
                                %>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="Anzahl Themen" />
                                    </f:facet>
                                    <h:outputText value="1"></h:outputText>
                                </h:column>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="Moderatoren"></h:outputText>
                                    </f:facet>
                                    <h:outputText value="admin"></h:outputText>
                                </h:column>
                                <%
                            } else if(request.getParameter("forumID") != null && request.getParameter("threadID") == null) {
                                %>
                                <h:column>
                                    <f:facet name="header">
                                        <h:outputText value="Anzahl Beitr&auml;ge" escape="false"></h:outputText>
                                    </f:facet>
                                    <h:outputText value="1"></h:outputText>
                                </h:column>
                                <%
                            } else if(request.getParameter("forumID") != null && request.getParameter("threadID") != null) {
                                %>
                                
                                <%
                            }
                            %>
                            <f:facet name="footer">
                                <h:panelGroup>
                                    <h:form>
                                        <h:commandButton value="Zurück" action="#{Forum__frontend.zurueck}" rendered="#{Forum__frontend.zurueckVisible}" />
                                        <h:commandButton value="Weiter" action="#{Forum__frontend.weiter}" rendered="#{Forum__frontend.weiterVisible}" />
                                    </h:form>
                                    Test Anzahl Reihen: <h:outputText value="#{Forum__frontend.test}"></h:outputText>
                                </h:panelGroup>
                            </f:facet>
                        </h:dataTable>
                        <br /><br />
    MfG

    Masterpurzel
    Geändert von Masterpurzel (06.11.11 um 17:23 Uhr)
     

Ähnliche Themen

  1. Kein Abstand zwischen Inhalt einer Tabellenzelle und dem Rand (IceFaces DataTable)
    Von cuchulainn im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 23.04.09, 10:15
  2. DataTable-Inhalt sortieren
    Von ceene im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 23.09.08, 12:44
  3. Inhalt eines zwei Div skalieren
    Von TribunM im Forum CSS
    Antworten: 2
    Letzter Beitrag: 07.05.08, 08:47
  4. Flash Textbox spuckt Inhalt mit Formatierung aus
    Von paraphan im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 18.03.08, 22:28
  5. DataTable zu anderer DataTable hinzufügen
    Von broetchen im Forum .NET Datenverwaltung
    Antworten: 4
    Letzter Beitrag: 12.09.05, 15:00

Stichworte