main.xhtml:
mypackage.java:
package beans;
import javax.el.ValueExpression;
import javax.faces.component.html.HtmlInputText;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.UIComponent;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
public class mypackage {
// Init -
private HtmlInputText inField1;
private HtmlInputText inField2;
private String instrField1;
private String instrfield2;
private String inputValue;
private HtmlOutputText newField1Binding;
private HtmlOutputText newField2Binding;
private HtmlOutputText oldField1Binding;
private HtmlOutputText oldField2Binding;
private String new_outstrField1;
private String old_outstrField1;
private String new_outstrfield2;
private String old_outstrField2;
// Actions -
public void action() {
// outputValue = inputValue;
log("success");
log("input value = " + (String)inField1.getValue());
log("input value = " + (String)inField2.getValue());
newField1Binding.setValue(inField1.getValue());
newField2Binding.setValue(inField2.getValue());
// outputBinding.setValue(inputBinding.getValue());
}
public void action(ActionEvent event) {
log("success - ae");
action();
}
// Getters -
public String getInputValue() {
log(inputValue);
return inputValue;
}
public void setInputValue(String inputValue) {
log(inputValue);
this.inputValue = inputValue;
}
public void inputChanged(ValueChangeEvent event) {
log(event.getOldValue() + " to " + event.getNewValue());
String id = ((UIComponent)event.getSource()).getId();
log("found" + id);
if (id.equals("field1")) {
oldField1Binding.setValue(event.getOldValue());
} else if (id.equals("field2")) {
oldField2Binding.setValue(event.getOldValue());
}
}
// Helpers -
private void log(Object object) {
String methodName = new Exception().getStackTrace(){FOOTNOTE DEF 1 1}.getMethodName();
System.out.println("MyBean " + methodName + ": " + object);
}
public HtmlInputText getInField1() {
log(inField1);
return inField1;
}
public void setInField1(HtmlInputText inField1) {
log(inField1);
this.inField1 = inField1;
}
public HtmlInputText getInField2() {
log(inField2);
return inField2;
}
public void setInField2(HtmlInputText inField2) {
log(inField2);
this.inField2 = inField2;
}
public String getInstrField1() {
log(instrField1);
return instrField1;
}
public void setInstrField1(String instrField1) {
log(instrField1);
this.instrField1 = instrField1;
}
public String getInstrfield2() {
log(instrfield2);
return instrfield2;
}
public void setInstrfield2(String instrfield2) {
log(instrfield2);
this.instrfield2 = instrfield2;
}
public HtmlOutputText getNewField1Binding() {
return newField1Binding;
}
public void setNewField1Binding(HtmlOutputText newField1Binding) {
this.newField1Binding = newField1Binding;
}
public HtmlOutputText getNewField2Binding() {
return newField2Binding;
}
public void setNewField2Binding(HtmlOutputText newField2Binding) {
this.newField2Binding = newField2Binding;
}
public HtmlOutputText getOldField1Binding() {
return oldField1Binding;
}
public void setOldField1Binding(HtmlOutputText oldField1Binding) {
this.oldField1Binding = oldField1Binding;
}
public HtmlOutputText getOldField2Binding() {
return oldField2Binding;
}
public void setOldField2Binding(HtmlOutputText oldField2Binding) {
this.oldField2Binding = oldField2Binding;
}
public String getNew_outstrField1() {
return new_outstrField1;
}
public void setNew_outstrField1(String new_outstrField1) {
this.new_outstrField1 = new_outstrField1;
}
public String getOld_outstrField1() {
return old_outstrField1;
}
public void setOld_outstrField1(String old_outstrField1) {
this.old_outstrField1 = old_outstrField1;
}
public String getNew_outstrfield2() {
return new_outstrfield2;
}
public void setNew_outstrfield2(String new_outstrfield2) {
this.new_outstrfield2 = new_outstrfield2;
}
public String getOld_outstrField2() {
return old_outstrField2;
}
public void setOld_outstrField2(String old_outstrField2) {
this.old_outstrField2 = old_outstrField2;
}
}
MyConverter.java:
package util;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
public class MyConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) {
System.out.println("MyConverter getAsObject: " + value);
return value;
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
System.out.println("MyConverter getAsString: " + value);
return (String) value;
}
}
MyValidator.java:
package util;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
public class MyValidator implements Validator {
public void validate(FacesContext context, UIComponent component, Object value)
throws ValidatorException
{
System.out.println("MyValidator validate: " + value);
}
}
faces-config.xml:
Using Exadel Phase Tracker we are able to generate this log output:
Mar 10, 2008 6:49:15 PM org.exadel.jsf.PhaseTracker beforePhase
INFO: BEFORE RESTORE_VIEW 1
MyBean setInField1: javax.faces.component.html.HtmlInputText@1c19919
MyBean setInField2: javax.faces.component.html.HtmlInputText@12a416a
Mar 10, 2008 6:49:15 PM org.exadel.jsf.PhaseTracker afterPhase
INFO: AFTER RESTORE_VIEW 1
Mar 10, 2008 6:49:15 PM org.exadel.jsf.PhaseTracker beforePhase
INFO: BEFORE APPLY_REQUEST_VALUES 2
MyConverter getAsObject: one123
MyValidator validate: one123
MyConverter getAsObject: two234
MyValidator validate: two234
MyBean inputChanged: one12 to one123
MyBean inputChanged: foundfield1
MyBean inputChanged: two23 to two234
MyBean inputChanged: foundfield2
MyBean action: success - ae
MyBean action: success
MyBean action: input value = one123
MyBean action: input value = two234
Mar 10, 2008 6:49:15 PM org.exadel.jsf.PhaseTracker afterPhase
INFO: AFTER APPLY_REQUEST_VALUES 2
Mar 10, 2008 6:49:15 PM org.exadel.jsf.PhaseTracker beforePhase
INFO: BEFORE RENDER_RESPONSE 6
Mar 10, 2008 6:49:15 PM org.exadel.jsf.PhaseTracker afterPhase
INFO: AFTER RENDER_RESPONSE 6
Comments