1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.view.facelets.tag.jstl.core;
20
21 import java.io.IOException;
22
23 import javax.el.ELException;
24 import javax.faces.FacesException;
25 import javax.faces.component.UIComponent;
26 import javax.faces.view.facelets.FaceletContext;
27 import javax.faces.view.facelets.FaceletException;
28 import javax.faces.view.facelets.TagAttribute;
29 import javax.faces.view.facelets.TagConfig;
30 import javax.faces.view.facelets.TagHandler;
31
32 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletAttribute;
33 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletTag;
34
35
36
37
38
39
40
41
42 @JSFFaceletTag(name="c:catch")
43 public final class CatchHandler extends TagHandler
44 {
45
46
47
48
49
50
51 @JSFFaceletAttribute(className="java.lang.String")
52 private final TagAttribute var;
53
54
55
56
57 public CatchHandler(TagConfig config)
58 {
59 super(config);
60 this.var = this.getAttribute("var");
61 }
62
63 public void apply(FaceletContext ctx, UIComponent parent) throws IOException, FacesException, FaceletException,
64 ELException
65 {
66 try
67 {
68 this.nextHandler.apply(ctx, parent);
69 }
70 catch (Exception e)
71 {
72 if (this.var != null)
73 {
74 ctx.setAttribute(this.var.getValue(ctx), e);
75 }
76 }
77 }
78
79 }