JSF

This page (revision-8) was last changed on 19-Sep-2018 13:22 by Dieter Käppel

This page was created on 22-Oct-2010 13:36 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
8 19-Sep-2018 13:22 8 KB Dieter Käppel to previous
7 19-Sep-2018 13:22 8 KB Dieter Käppel to previous | to last
6 19-Sep-2018 13:21 8 KB Dieter Käppel to previous | to last
5 09-Jan-2014 11:03 8 KB Dieter Käppel to previous | to last
4 04-Nov-2010 15:47 6 KB Dieter Käppel to previous | to last
3 03-Nov-2010 14:20 4 KB Dieter Käppel to previous | to last
2 29-Oct-2010 17:16 2 KB Dieter Käppel to previous | to last
1 22-Oct-2010 13:36 2 KB Dieter Käppel to last

Page References

Incoming links Outgoing links
JSF

Version management

Difference between version and

At line 232 added 65 lines
!ClearValuesActionListener
ClearValuesActionListenerHandler:
{{{
public class ClearValuesActionListenerHandler extends TagHandler {
public static class ClearValuesActionListener implements ActionListener, Serializable {
private ValueExpression forValue;
public ClearValuesActionListener() {
}
public ClearValuesActionListener(ValueExpression forValue) {
this.forValue = forValue;
}
public ValueExpression getFor() {
return forValue;
}
public void setFor(ValueExpression forValue) {
this.forValue = forValue;
}
@Override
public void processAction(ActionEvent actionEvent) {
String id = (String)forValue.getValue(FacesContext.getCurrentInstance().getELContext());
UIComponent component =
RendererUtils.getInstance().findComponentFor(actionEvent.getComponent(), id);
clearValues(component);
}
private void clearValues(UIComponent component) {
if (component instanceof UIInput) {
UIInput input = (UIInput)component;
input.setSubmittedValue(null);
}
for (UIComponent child : component.getChildren()) {
clearValues(child);
}
}
}
private TagAttribute forAttribute;
public ClearValuesActionListenerHandler(TagConfig config) {
super(config);
forAttribute = getRequiredAttribute("for");
}
@Override
public void apply(FaceletContext context, UIComponent parent) {
if (!(parent instanceof ActionSource))
throw new TagException(tag, "Parent component must be action source");
ActionSource actionSource = (ActionSource)parent;
ValueExpression forValue = forAttribute.getValueExpression(context, String.class);
actionSource.addActionListener(new ClearValuesActionListener(forValue));
}
}
}}}
Taglib:
{{{
<tag>
<tag-name>clearValuesActionListener</tag-name>
<handler-class>com.intersult.ClearValuesActionListenerHandler</handler-class>
</tag>
}}}