Java/JSF

saschaPower

Grünschnabel
Hallo,
vorweg: ich bin Newbie in Bezug auf programmieren. Jetzt möchte ich mit Hilfe von Java und jsf ein kleines Div rendern, leider gelingt es mir nicht so wie es sollte ?
Ich habe folgende Methode, die soweit auch läuft, allerdings werden die UIComponents nicht so gerendert wie ich es möchte:
Java:
public void writeRenameDiv(ResponseWriter writer, String nodeUri) throws IOException
    {
        String divId = "RenameNode_" + nodeUri;
        writer.write("<div id=\"" + divId +"\" style=\"background: #eeeeee; \">");

        //
        //        //Form
        //        UIForm formTag = new UIForm();
        //        formTag.setId("RenameForm_" + nodeUri.replace(":", "_"));
        //        formTag.encodeBegin(context);
        //        formTag.processDecodes(context);
        //
        //        //Textfield
        UIInput nameTextField = new UIInput();
        ValueBinding nameValueBinding =
                FacesContext.getCurrentInstance().getApplication()
                        .createValueBinding("#{knowledgeAssetTree_nodes.newNodeName}");
        nameTextField.setValueBinding("setNewNodeName", nameValueBinding);
        //nameTextField.setParent(formTag);
        nameTextField.encodeBegin(context);
        nameTextField.encodeChildren(context);
        nameTextField.encodeEnd(context);

        //Button
        UICommand okButton = new UICommand();
        MethodBinding action =
                FacesContext.getCurrentInstance().getApplication().createMethodBinding(
                        "#{knowledgeAssetTree_nodes.addNewNode}", new Class[0]); 
        okButton.setAction(action);
        //okButton.setParent(formTag);
        okButton.setId("okButton_" + nodeUri.replace(":", "_"));
        okButton.setValue("OK");
        okButton.encodeBegin(context);
        okButton.encodeChildren(context);
        okButton.encodeEnd(context);
        //
        //        //formTag.encodeChildren(context);
        //        //formTag.encodeEnd(context); //end form
        //
        writer.write("</div>"); //end 

    }

Und in der Bean Tree sind die Methoden addNewNode() (MethodBinding für OK-Button) sowie die setter/getter für das Value-Binding des Textfeldes….

Folgende Probleme habe ich:

-mit dem auskommentierten UIForm-Element wird die GUI wenigstens so gerendert wie ich möchte. Klicken auf den OK-Button bewirkt aber nur ein refresh der Seite. Das Method-Binding wird nicht ausgeführt. Kann mir vorallem da jemand weiterhelfen wieso?

-wenn ich die Kommentare rund um das form-Element wieder weg mache wird die Seite nicht einmal ordentlich gerendert….
Was ist hierfür die Ursache, was mache ich verkehrt?


Vollständigkeitshalber noch die Methoden in der Tree-Bean:
Java:
    public String addNewNode()
    {
        System.out.println("Drin");
        return "failure";
    }
…
    public void setNewNodeName(String newName)
    {
        newNodeName = newName;
    }

    public String getNewNodeName()
    {
        return newNodeName;
    }

Vielleicht kann mir jemand sagen, was ich falsch mache?
Vorab danke! Gruß Sascha….
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück