私はJSFとPrimefacesに少し慣れていません.本を勉強して、やってみるだけです;-)これを行うと、明らかに一人では解決できない問題にぶら下がっています.
次のxhtmlコード
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:pe="http://primefaces.org/ui/extensions">
<h:head>
<title>My Testpage</title>
</h:head>
<h:body>
<h:panelGroup>
<pe:dynaForm id="form_kairos" value="#{kairosController.model}" var="m">
<pe:dynaFormControl type="input" for="txt">
<p:inputText cols="80" id="txt" value="#{m.value}" required="true"/>
</pe:dynaFormControl>
<f:facet name="buttonBar">
<p:commandButton value="Submit"
action="#{kairosController.submitForm}"
style="margin-left: 5px;"/>
</f:facet>
</pe:dynaForm>
</h:panelGroup>
</h:body>
</html>
入力フィールドと [送信] ボタンが期待どおりに表示されます。しかし、ボタンを押しても submitForm メソッドにはジャンプしません :o 。
私の Bean コードは (今のところ) 可能な限り単純で、次のようになります。
import de.hlg.kairos.TextInput;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import org.primefaces.extensions.model.dynaform.DynaFormControl;
import org.primefaces.extensions.model.dynaform.DynaFormLabel;
import org.primefaces.extensions.model.dynaform.DynaFormModel;
import org.primefaces.extensions.model.dynaform.DynaFormRow;
@ManagedBean
@SessionScoped
public class KairosController implements Serializable {
private DynaFormModel model;
private TextInput myValue;
public KairosController() {
model = new DynaFormModel();
myValue = new TextInput("myValue");
DynaFormRow row = model.createRegularRow();
DynaFormLabel label11 = row.addLabel("my label", 1, 1);
DynaFormControl control12 = row.addControl(myValue, "input", 1, 1);
label11.setForControl(control12);
}
public DynaFormModel getModel() {
Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, "getModel()");
return model;
}
public String submitForm() {
Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, "submitForm()");
return null;
}
}
ネストされたフォームについて話しているいくつかのスレッドを既に読みましたが、これは commandButton では機能しないようです。他の人は ajax="false" がボタンに役立つと言っていましたが、私の例ではこれらのヒントは役に立たなかったので、何か他のものがあるかもしれないと思います (おそらく、より経験豊富な人にとっては非常に明白な何か :lol: ) 私のコードに問題があります.
残念ながら、PFE ショーケースとまったく同じ動作が見られるため、動作するものと比較することはできません。
dynaForm コンポーネントで ajax なしで commandButton を機能させる提案や実例はありますか?
乾杯、ジョーン