1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package org.apache.struts.tiles.taglib;
24
25 import javax.servlet.jsp.JspException;
26 import javax.servlet.jsp.tagext.TagSupport;
27
28 import org.apache.struts.tiles.DefinitionsFactory;
29 import org.apache.struts.tiles.DefinitionsFactoryConfig;
30 import org.apache.struts.tiles.DefinitionsFactoryException;
31 import org.apache.struts.tiles.TilesUtil;
32
33
34
35
36 public class InitDefinitionsTag extends TagSupport
37 implements ComponentConstants {
38
39
40 private String filename = null;
41 private String classname = null;
42
43
44
45
46 public InitDefinitionsTag() {
47 super();
48 }
49
50
51
52
53 public void release() {
54
55 super.release();
56 filename = null;
57 }
58
59
60
61
62 public void setFile(String name){
63 this.filename = name;
64 }
65
66
67
68
69 public void setClassname(String classname){
70 this.classname = classname;
71 }
72
73
74
75
76 public int doStartTag() throws JspException
77 {
78 DefinitionsFactory factory =
79 TilesUtil.getDefinitionsFactory(pageContext.getRequest(),
80 pageContext.getServletContext());
81 if(factory != null )
82 return SKIP_BODY;
83
84 DefinitionsFactoryConfig factoryConfig = new DefinitionsFactoryConfig();
85 factoryConfig.setFactoryClassname( classname );
86 factoryConfig.setDefinitionConfigFiles( filename );
87
88 try
89 {
90 factory = TilesUtil.createDefinitionsFactory(
91 pageContext.getServletContext(), factoryConfig);
92 }
93 catch( DefinitionsFactoryException ex )
94 {
95 ex.printStackTrace();
96 throw new JspException( ex );
97 }
98 return SKIP_BODY;
99 }
100
101
102
103
104 public int doEndTag() throws JspException {
105 return EVAL_PAGE;
106 }
107
108 }