General test coverage improvement for frameworks and API.
diff --git a/jsf/tests/org.eclipse.jst.jsf.contentassist.tests/src/org/eclipse/jst/jsf/contentassist/tests/AllTests.java b/jsf/tests/org.eclipse.jst.jsf.contentassist.tests/src/org/eclipse/jst/jsf/contentassist/tests/AllTests.java
index 253cb18..b664f7d 100644
--- a/jsf/tests/org.eclipse.jst.jsf.contentassist.tests/src/org/eclipse/jst/jsf/contentassist/tests/AllTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.contentassist.tests/src/org/eclipse/jst/jsf/contentassist/tests/AllTests.java
@@ -28,8 +28,8 @@
TestSuite suite = new TestSuite("Test for org.eclipse.jst.jsf.contentassist");
//$JUnit-BEGIN$
suite.addTestSuite(CompletionPrefixTest.class);
-// suite.addTestSuite(Test_bug_149224.class);
-// suite.addTestSuite(Test_bug_149743.class);
+ suite.addTestSuite(Test_bug_149224.class);
+ suite.addTestSuite(Test_bug_149743.class);
//$JUnit-END$
return suite;
}
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/AllTests.java b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/AllTests.java
index 55b642b..d7a5296 100644
--- a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/AllTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/AllTests.java
@@ -13,6 +13,7 @@
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.eclipse.jst.jsf.core.tests.appconfig.validation.AppConfigValidationUtilTestCase;
import org.eclipse.jst.jsf.core.tests.jsflibraryconfig.JSFLibraryConfigDialogSettingDataTestCases;
import org.eclipse.jst.jsf.core.tests.jsflibraryconfig.JSFLibraryConfigModelTestCases;
import org.eclipse.jst.jsf.core.tests.jsflibraryconfig.JSFLibraryRegistryUtilTestCases;
@@ -25,10 +26,16 @@
import org.eclipse.jst.jsf.core.tests.jsflibraryregistry.MaintainDefaultImplementationAdapterTestCases;
import org.eclipse.jst.jsf.core.tests.jsflibraryregistry.migration.MigrationV1toV2Test;
import org.eclipse.jst.jsf.core.tests.project.facet.JSFFacetInstallDataModelProviderTestCases;
+import org.eclipse.jst.jsf.core.tests.set.ConcreteAxiomaticSetTest;
+import org.eclipse.jst.jsf.core.tests.set.NodeSetTest;
+import org.eclipse.jst.jsf.core.tests.set.TestMemberConstraint;
+import org.eclipse.jst.jsf.core.tests.set.TestXPathValidation;
+import org.eclipse.jst.jsf.core.tests.tagmatcher.TestXPathTagMatcher;
import org.eclipse.jst.jsf.core.tests.types.TypeComparatorTests;
import org.eclipse.jst.jsf.core.tests.types.TypeTransformerTests;
import org.eclipse.jst.jsf.core.tests.util.TestJDTBeanIntrospector;
import org.eclipse.jst.jsf.core.tests.util.TestJDTBeanPropertyWorkingCopy;
+import org.eclipse.jst.jsf.core.tests.util.TestTypeUtil;
import org.eclipse.jst.jsf.core.tests.validation.TestJSPSemanticsValidator;
/**
@@ -46,6 +53,7 @@
//$JUnit-BEGIN$
suite.addTestSuite(TestJDTBeanPropertyWorkingCopy.class);
suite.addTestSuite(TestJDTBeanIntrospector.class);
+ suite.addTestSuite(TestTypeUtil.class);
suite.addTestSuite(TypeComparatorTests.class);
suite.addTestSuite(TypeTransformerTests.class);
@@ -67,6 +75,12 @@
suite.addTestSuite(JSFLibraryRegistryUtilTestCases.class);
suite.addTestSuite(TestJSPSemanticsValidator.class);
+ suite.addTestSuite(AppConfigValidationUtilTestCase.class);
+ suite.addTestSuite(TestMemberConstraint.class);
+ suite.addTestSuite(TestXPathValidation.class);
+ suite.addTestSuite(TestXPathTagMatcher.class);
+ suite.addTestSuite(ConcreteAxiomaticSetTest.class);
+ suite.addTestSuite(NodeSetTest.class);
// NOTE: migration tests affect workspace meta-data files, but they
// should play nice with others
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/ConcreteAxiomaticSetTest.java b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/ConcreteAxiomaticSetTest.java
new file mode 100644
index 0000000..5757772
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/ConcreteAxiomaticSetTest.java
@@ -0,0 +1,153 @@
+package org.eclipse.jst.jsf.core.tests.set;
+
+import junit.framework.TestCase;
+
+import org.eclipse.jst.jsf.common.sets.AxiomaticSet;
+import org.eclipse.jst.jsf.common.sets.ConcreteAxiomaticSet;
+
+public class ConcreteAxiomaticSetTest extends TestCase
+{
+ AxiomaticSet _primaryColours;
+ AxiomaticSet _secondaryColours;
+ AxiomaticSet _allMainColours;
+
+ AxiomaticSet _palette;
+ AxiomaticSet _overlappingSet;
+ AxiomaticSet _emptySet;
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ // make concreteSet1 disjoint with concreteSet2 and non-disjoint with concrete3
+
+ _emptySet = new ConcreteAxiomaticSet();
+
+ _primaryColours = new ConcreteAxiomaticSet();
+ _primaryColours.add("blue");
+ _primaryColours.add("red");
+ _primaryColours.add("yellow");
+
+ _secondaryColours = new ConcreteAxiomaticSet();
+ _secondaryColours.add("green");
+ _secondaryColours.add("purple");
+ _secondaryColours.add("orange");
+
+ _allMainColours = new ConcreteAxiomaticSet();
+ _allMainColours.add("blue");
+ _allMainColours.add("red");
+ _allMainColours.add("yellow");
+ _allMainColours.add("green");
+ _allMainColours.add("purple");
+ _allMainColours.add("orange");
+
+ _palette = new ConcreteAxiomaticSet();
+ _palette.add("blue");
+ _palette.add("green");
+ _palette.add("burgundy");
+
+ _overlappingSet = new ConcreteAxiomaticSet();
+ _overlappingSet.add("blue");
+ _overlappingSet.add("red");
+ _overlappingSet.add("yellow");
+ _overlappingSet.add("green");
+ _overlappingSet.add("purple");
+ _overlappingSet.add("burgundy");
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+
+ _primaryColours = null;
+ _secondaryColours = null;
+ _palette = null;
+ _emptySet = null;
+ }
+
+ public void testIntersect()
+ {
+ // intersect the empty is set an identity
+ assertTrue(_primaryColours.intersect(_secondaryColours).isEmpty());
+
+ // non-disjoint intersection not empty
+ assertFalse(_primaryColours.intersect(_palette).isEmpty());
+ assertEquals(1, _primaryColours.intersect(_palette).size());
+ assertEquals("blue", _primaryColours.intersect(_palette).getFirstElement());
+
+ // intersection is commutative
+ assertEquals(_primaryColours.intersect(_palette), _palette.intersect(_primaryColours));
+ //intersection is associative
+ assertEquals(_primaryColours.intersect(_overlappingSet).intersect(_palette)
+ , _overlappingSet.intersect(_palette).intersect(_primaryColours));
+
+ // intersection of disjoint sets are empty
+ assertTrue(_primaryColours.intersect(_secondaryColours).isEmpty());
+
+ // intersection of subset of a set with the set is the subset
+ assertEquals(_primaryColours, _allMainColours.intersect(_primaryColours));
+ assertEquals(_secondaryColours, _allMainColours.intersect(_secondaryColours));
+ }
+
+ public void testIsEquivalent()
+ {
+ // identity: a set is equal to itself
+ assertTrue(_primaryColours.isEquivalent(_primaryColours));
+
+ // two unequal sets are not equivalent
+ assertFalse(_primaryColours.isEquivalent(_secondaryColours));
+ }
+
+ public void testUnion()
+ {
+ // union with empty is identity
+ assertEquals(_primaryColours, _primaryColours.union(_emptySet));
+
+ // primary and secondary union to allMain
+ assertEquals(_allMainColours, _primaryColours.union(_secondaryColours));
+
+ // union is commutative
+ assertEquals(_primaryColours.union(_secondaryColours)
+ , _secondaryColours.union(_primaryColours));
+ // union is associative
+ assertEquals(_primaryColours.union(_secondaryColours).union(_overlappingSet),
+ _secondaryColours.union(_overlappingSet).union(_primaryColours));
+ }
+
+ public void testIsDisjoint() {
+ // primary colours and secondary have no common elements
+ assertTrue(_primaryColours.isDisjoint(_secondaryColours));
+
+ // all sets are disjoint with the empty set
+ assertTrue(_primaryColours.isDisjoint(_emptySet));
+ assertTrue(_secondaryColours.isDisjoint(_emptySet));
+ assertTrue(_emptySet.isDisjoint(_allMainColours));
+
+ // subset is not disjoint with set
+ assertFalse(_primaryColours.isDisjoint(_allMainColours));
+ }
+
+ public void testGetFirstElement()
+ {
+ // TODO:
+ }
+
+ public void testSubtract() {
+ // A - B = A if A and B are disjoint
+ assertEquals(_primaryColours, _primaryColours.subtract(_secondaryColours));
+
+ // A - B = C where A = B U C and B and C are disjoint
+ assertEquals(_secondaryColours, _allMainColours.subtract(_primaryColours));
+ assertEquals(_primaryColours, _allMainColours.subtract(_secondaryColours));
+
+ // A - B = A if B is empty
+ assertEquals(_secondaryColours, _secondaryColours.subtract(_emptySet));
+
+ AxiomaticSet remainder = _allMainColours.subtract(_overlappingSet);
+ assertEquals(1, remainder.size());
+ assertTrue(remainder.contains("orange"));
+ }
+
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/NodeSetTest.java b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/NodeSetTest.java
new file mode 100644
index 0000000..9dd0910
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/NodeSetTest.java
@@ -0,0 +1,131 @@
+package org.eclipse.jst.jsf.core.tests.set;
+
+import org.eclipse.jst.jsf.common.sets.AxiomaticSet;
+import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
+import org.eclipse.jst.jsf.core.set.mapping.ElementToTagIdentifierMapping;
+import org.eclipse.jst.jsf.core.tagmatcher.XPathMatchingAlgorithm;
+import org.eclipse.jst.jsf.core.tests.tagmatcher.BaseTagMatcherTestCase;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.w3c.dom.Document;
+
+public class NodeSetTest extends BaseTagMatcherTestCase
+{
+ private AxiomaticSet _ancestorsOfInputText;
+ private AxiomaticSet _ancestorsOfCommandButton;
+ private AxiomaticSet _ancestorsOfOutputText;
+ private AxiomaticSet _inputTextSingletonSet;
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ _srcFileName = "/testfiles/jsps/testdata1.jsp.data";
+ _destFileName = "/testdata1.jsp";
+
+ super.setUp();
+
+ _ancestorsOfInputText = getAncestorsOf("/view/html/body/form/panelGrid/inputText", 5);
+ _ancestorsOfCommandButton = getAncestorsOf("/view/html/body/form/commandButton", 4);
+ _ancestorsOfOutputText = getAncestorsOf("/view/html/body/form/h1/outputText", 5);
+
+ Document doc = ((IDOMModel)_structuredModel).getDocument();
+ XPathMatchingAlgorithm matcher = new XPathMatchingAlgorithm("/view/html/body/form/panelGrid/inputText");
+ _inputTextSingletonSet = matcher.evaluate(doc);
+ assertEquals(1, _inputTextSingletonSet.size());
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ }
+
+ public void testIntersect()
+ {
+ AxiomaticSet set1 =
+ _ancestorsOfInputText.intersect(_ancestorsOfCommandButton);
+ set1 = new ElementToTagIdentifierMapping().map(set1);
+ assertEquals(4, set1.size());
+ assertTrue(set1.contains(IJSFConstants.TAG_IDENTIFIER_FORM));
+ assertTrue(set1.contains(IJSFConstants.TAG_IDENTIFIER_VIEW));
+ // should not contain panelgrid because command button not in it
+ assertFalse(set1.contains(IJSFConstants.TAG_IDENTIFIER_PANEL_GRID));
+
+ AxiomaticSet set2 =
+ _ancestorsOfOutputText.intersect(_ancestorsOfCommandButton);
+ set2 = new ElementToTagIdentifierMapping().map(set2);
+ assertEquals(4, set2.size());
+ assertTrue(set2.contains(IJSFConstants.TAG_IDENTIFIER_FORM));
+ assertTrue(set2.contains(IJSFConstants.TAG_IDENTIFIER_VIEW));
+
+ // result is same as command button's ancestors, but output text
+ // has an additional h1 ancestor
+ assertFalse(set2.equals(new ElementToTagIdentifierMapping().map(_ancestorsOfOutputText)));
+ assertTrue(set2.equals(new ElementToTagIdentifierMapping().map(_ancestorsOfCommandButton)));
+ }
+
+ public void testIsEquivalent() throws Exception
+ {
+ // this == compareTo
+ assertTrue(_ancestorsOfInputText.isEquivalent(_ancestorsOfInputText));
+
+ // this._data == compareTo._data
+ //assertTrue(_ancestorsOfInputText.isEquivalent((AxiomaticSet) ((NodeSet)_ancestorsOfInputText).clone()));
+
+ // this.size() != compareTo.size();
+ assertFalse(_ancestorsOfInputText.isEquivalent(_ancestorsOfCommandButton));
+
+ // this.size() == compareTo.size() but contents not same
+ assertFalse(_ancestorsOfInputText.isEquivalent(_ancestorsOfOutputText));
+
+ // this.size() == compareTo.size() AND contents same
+ assertTrue(_ancestorsOfInputText.isEquivalent(getAncestorsOf("/view/html/body/form/panelGrid/inputText", -1)));
+ }
+
+ public void testUnion()
+ {
+ AxiomaticSet set1 =
+ _ancestorsOfInputText.union(_ancestorsOfCommandButton);
+ set1 = new ElementToTagIdentifierMapping().map(set1);
+ assertEquals(5, set1.size());
+ assertTrue(set1.contains(IJSFConstants.TAG_IDENTIFIER_FORM));
+ assertTrue(set1.contains(IJSFConstants.TAG_IDENTIFIER_VIEW));
+ assertTrue(set1.contains(IJSFConstants.TAG_IDENTIFIER_PANEL_GRID));
+
+ AxiomaticSet set2 =
+ _ancestorsOfOutputText.union(_ancestorsOfCommandButton);
+ set2 = new ElementToTagIdentifierMapping().map(set2);
+ assertEquals(5, set2.size());
+ assertTrue(set2.contains(IJSFConstants.TAG_IDENTIFIER_FORM));
+ assertTrue(set2.contains(IJSFConstants.TAG_IDENTIFIER_VIEW));
+ assertFalse(set2.contains(IJSFConstants.TAG_IDENTIFIER_PANEL_GRID));
+ }
+
+ public void testIsDisjoint()
+ {
+ assertFalse(_ancestorsOfInputText.isDisjoint(_ancestorsOfCommandButton));
+ assertFalse(_ancestorsOfInputText.isDisjoint(_ancestorsOfOutputText));
+ assertFalse(_ancestorsOfInputText.isDisjoint(_ancestorsOfInputText));
+
+ assertTrue(_ancestorsOfInputText.isDisjoint(_inputTextSingletonSet));
+ assertTrue(_ancestorsOfOutputText.isDisjoint(_inputTextSingletonSet));
+ assertTrue(_ancestorsOfCommandButton.isDisjoint(_inputTextSingletonSet));
+ }
+
+ public void testSubtract()
+ {
+ // the only non-common parent is the panel grid
+ AxiomaticSet set1 = _ancestorsOfInputText.subtract(_ancestorsOfCommandButton);
+ set1 = new ElementToTagIdentifierMapping().map(set1);
+ assertEquals(1, set1.size());
+ assertTrue(set1.contains(IJSFConstants.TAG_IDENTIFIER_PANEL_GRID));
+
+ // all of command button's parents are also parents of inputText
+ set1 = _ancestorsOfCommandButton.subtract(_ancestorsOfInputText);
+ set1 = new ElementToTagIdentifierMapping().map(set1);
+ assertEquals(0, set1.size());
+
+ // no common elements
+ set1 = _ancestorsOfCommandButton.subtract(_inputTextSingletonSet);
+ assertEquals(_ancestorsOfCommandButton, set1);
+ }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/TestElementToTagIdentifierMapping.java b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/TestElementToTagIdentifierMapping.java
index cf8b170..2c6438e 100644
--- a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/TestElementToTagIdentifierMapping.java
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/TestElementToTagIdentifierMapping.java
@@ -14,7 +14,8 @@
public class TestElementToTagIdentifierMapping extends BaseTagMatcherTestCase
{
- protected void setUp() throws Exception {
+ protected void setUp() throws Exception
+ {
_srcFileName = "/testfiles/jsps/testdata1.jsp.data";
_destFileName = "/testdata1.jsp";
super.setUp();
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/TestXPathValidation.java b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/TestXPathValidation.java
index ff8ebc2..b61e16d 100644
--- a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/TestXPathValidation.java
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/set/TestXPathValidation.java
@@ -24,11 +24,13 @@
public class TestXPathValidation extends BaseTagMatcherTestCase {
- protected void setUp() throws Exception {
+ protected void setUp() throws Exception
+ {
_srcFileName = "/testfiles/jsps/testdata1.jsp.data";
_destFileName = "/testdata1.jsp";
+
super.setUp();
- }
+ }
public void testValidateParentMembership()
{
@@ -47,7 +49,7 @@
// test a constraint set that isn't satisfied: no ancestor is inputLabel
constraintSet.clear();
- constraintSet.add(TagIdentifierFactory.createJSPTagWrapper(ITLDConstants.URI_JSF_HTML, "form"));
+ constraintSet.add(TagIdentifierFactory.createJSPTagWrapper(ITLDConstants.URI_JSF_HTML, "inputLabel"));
memberConstraint = new MemberConstraint(constraintSet);
assertTrue(memberConstraint.failsConstraint(inputAncestors));
}
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/tagmatcher/BaseTagMatcherTestCase.java b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/tagmatcher/BaseTagMatcherTestCase.java
index 06c7998..4e7d89d 100644
--- a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/tagmatcher/BaseTagMatcherTestCase.java
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/tagmatcher/BaseTagMatcherTestCase.java
@@ -13,13 +13,20 @@
import junit.framework.TestCase;
import org.eclipse.core.resources.IFile;
+import org.eclipse.jst.jsf.common.sets.AxiomaticSet;
+import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.tagmatcher.XPathMatchingAlgorithm;
import org.eclipse.jst.jsf.core.tests.TestsPlugin;
+import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
import org.eclipse.jst.jsf.test.util.JSFTestUtil;
import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
@@ -65,16 +72,31 @@
_testEnv = new WebProjectTestEnvironment("ELValidationTest_"+this.getClass().getName()+"_"+getName());
_testEnv.createProject(false);
- assertNotNull(_testEnv);
+ assertNotNull(_testEnv);
assertNotNull(_testEnv.getTestProject());
assertTrue(_testEnv.getTestProject().isAccessible());
+ // load a dummy tld for core
+ // NOTE: the TLDs seem to need to be loaded BEFORE any JSPs that use them.
+ // probably adding the jsp kicks off something that searches for TLD's that doesn't
+ // get kicked if the TLDs are added after.
+ _testEnv.loadResourceInWebRoot(TestsPlugin.getDefault().getBundle()
+ , "/testfiles/myfaces_core.tld.data", "META-INF/myfaces_core.tld");
+
+ _testEnv.loadResourceInWebRoot(TestsPlugin.getDefault().getBundle()
+ , "/testfiles/myfaces_html.tld.data", "META-INF/myfaces_html.tld");
+
_testJSP = (IFile) _testEnv.loadResourceInWebRoot
(TestsPlugin.getDefault().getBundle(),
_srcFileName, _destFileName);
_structuredModel = StructuredModelManager.getModelManager().getModelForRead(_testJSP);
_structuredDocument = _structuredModel.getStructuredDocument();
+
+ // initialize test case for faces 1.1
+ JSFFacetedTestEnvironment jsfFacedEnv = new JSFFacetedTestEnvironment(_testEnv);
+ jsfFacedEnv.initialize(IJSFCoreConstants.FACET_VERSION_1_1);
+
}
protected void tearDown() throws Exception
@@ -87,5 +109,26 @@
}
_testEnv.getTestProject().close(null);
}
+
+ protected final AxiomaticSet getAncestorsOf(String xpathToChild, int expectedAncestors)
+ {
+ Document doc = ((IDOMModel)_structuredModel).getDocument();
+ XPathMatchingAlgorithm matcher = new XPathMatchingAlgorithm(xpathToChild);
+ AxiomaticSet set = matcher.evaluate(doc);
+ assertEquals(1, set.size());
+
+ // get all of the ancestors of the inputText
+ final Node inputText = (Node) set.getFirstElement();
+ matcher = new XPathMatchingAlgorithm("ancestor::*");
+ AxiomaticSet result = matcher.evaluate(inputText);
+ assertNotNull(result);
+
+ if (expectedAncestors >= 0)
+ {
+ assertEquals(expectedAncestors, result.size());
+ }
+
+ return result;
+ }
}
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/tagmatcher/TestXPathTagMatcher.java b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/tagmatcher/TestXPathTagMatcher.java
index 3e28088..1a83d70 100644
--- a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/tagmatcher/TestXPathTagMatcher.java
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/tagmatcher/TestXPathTagMatcher.java
@@ -12,10 +12,18 @@
import java.util.Iterator;
+import org.eclipse.jst.jsf.common.dom.TagIdentifier;
import org.eclipse.jst.jsf.common.sets.AxiomaticSet;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IDOMContextResolver;
+import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
+import org.eclipse.jst.jsf.core.internal.tld.CMUtil;
+import org.eclipse.jst.jsf.core.set.mapping.ElementToTagIdentifierMapping;
import org.eclipse.jst.jsf.core.tagmatcher.XPathMatchingAlgorithm;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -38,7 +46,15 @@
// get an input nested along a form path
assertEquals(1, set.size());
- Node node = (Node) set.getFirstElement();
+ IStructuredDocumentContext context =
+ IStructuredDocumentContextFactory.INSTANCE
+ .getContext(_structuredDocument, 544);
+ IDOMContextResolver resolver =
+ IStructuredDocumentContextResolverFactory.INSTANCE
+ .getDOMContextResolver(context);
+
+ Node node = resolver.getNode();//(Node) set.getFirstElement();
+ System.out.println(CMUtil.getElementNamespaceURI((Element) node));
XPathMatchingAlgorithm matcher = new XPathMatchingAlgorithm("html/body/form/panelGrid/inputText");
set = matcher.evaluate(node);
System.out.println(System.currentTimeMillis());
@@ -46,13 +62,18 @@
// get all of the ancestors of the inputText
final Node inputText = (Node) set.getFirstElement();
+ System.out.println(CMUtil.getElementNamespaceURI((Element) inputText));
matcher = new XPathMatchingAlgorithm("ancestor::*");
set = matcher.evaluate(inputText);
assertEquals(5,set.size());
-
+
+ set = new ElementToTagIdentifierMapping().map(set);
+
for (final Iterator it = set.iterator(); it.hasNext();)
{
- System.out.println(it.next());
+ TagIdentifier tagId = (TagIdentifier) it.next();
+ System.out.println(tagId.getUri());
+ System.out.println(tagId.getTagName());
}
}
}
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/util/TestTypeUtil.java b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/util/TestTypeUtil.java
index 4871538..0811bb0 100644
--- a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/util/TestTypeUtil.java
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/util/TestTypeUtil.java
@@ -11,14 +11,14 @@
********************************************************************************/
package org.eclipse.jst.jsf.core.tests.util;
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.List;
import junit.framework.TestCase;
+import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
-import org.eclipse.jst.jsf.common.util.JDTBeanIntrospector;
-import org.eclipse.jst.jsf.common.util.JDTBeanProperty;
import org.eclipse.jst.jsf.common.util.TypeUtil;
import org.eclipse.jst.jsf.core.tests.TestsPlugin;
import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
@@ -32,9 +32,11 @@
private IType _testBean1Type;
private IType _testBeanSubclassType;
private IType _testBeanGenericType;
- private Map<String, JDTBeanProperty> _properties;
- private Map<String, JDTBeanProperty> _subClassProperties;
- private Map<String, JDTBeanProperty> _genericTypeProperties;
+ private IType _testEnum1Type;
+
+// private Map<String, JDTBeanProperty> _properties;
+// private Map<String, JDTBeanProperty> _subClassProperties;
+// private Map<String, JDTBeanProperty> _genericTypeProperties;
private final static String srcFolderName = "src";
private final static String packageName1 = "com.test";
@@ -42,6 +44,8 @@
private final static String testBeanSubclassName1 = "TestBean1Subclass";
private final static String testAnotherBeanName = "AnotherBean";
private final static String testBeanGenericName = "TestBeanGeneric";
+ private final static String testEnumName1 = "TestEnum1";
+ //private final static String testEnumName2 = "TestEnum2";
protected void setUp() throws Exception {
super.setUp();
@@ -89,21 +93,31 @@
_testBeanGenericType = _jdtTestEnvironment.getJavaProject().findType(packageName1+"."+testBeanGenericName);
assertNotNull(_testBeanGenericType);
-
+
+ // load TestEnum1
+ codeRes = new TestFileResource();
+ codeRes.load(TestsPlugin.getDefault().getBundle(), "/testfiles/TestEnum1.java.data");
+ code = codeRes.toString();
+ _jdtTestEnvironment.addSourceFile(srcFolderName, packageName1, testEnumName1, code);
+
+ _testEnum1Type = _jdtTestEnvironment.getJavaProject().findType(packageName1+"."+testEnumName1);
+ assertNotNull(_testEnum1Type);
+ assertTrue(_testEnum1Type.isEnum());
+
// introspect after classes loaded to ensure all dependencies
// are in the project
- JDTBeanIntrospector beanIntrospector =
- new JDTBeanIntrospector(_testBean1Type);
+// JDTBeanIntrospector beanIntrospector =
+// new JDTBeanIntrospector(_testBean1Type);
+//
+// _properties = beanIntrospector.getProperties();
+//
+// beanIntrospector =
+// new JDTBeanIntrospector(_testBeanSubclassType);
+//
+// _subClassProperties = beanIntrospector.getProperties();
- _properties = beanIntrospector.getProperties();
-
- beanIntrospector =
- new JDTBeanIntrospector(_testBeanSubclassType);
-
- _subClassProperties = beanIntrospector.getProperties();
-
- beanIntrospector =
- new JDTBeanIntrospector(_testBeanGenericType);
+// beanIntrospector =
+// new JDTBeanIntrospector(_testBeanGenericType);
}
protected void tearDown() throws Exception {
@@ -130,16 +144,42 @@
assertEquals(TypeConstants.TYPE_COLLECTION, TypeUtil.resolveTypeSignature(_testBean1Type, "QCollection;", false));
assertEquals(TypeConstants.TYPE_MAP, TypeUtil.resolveTypeSignature(_testBean1Type, "QMap;", true));
assertEquals(TypeConstants.TYPE_MAP, TypeUtil.resolveTypeSignature(_testBean1Type, "QMap;", false));
-
+
// in this case, the provided signature has type erasure, so the answer will different depending on typeErasure flag
final String typeSigWithErasure = TypeUtil.resolveTypeSignature(_testBean1Type, "QMap<QString;QString;>;", true);
assertEquals(TypeConstants.TYPE_MAP, typeSigWithErasure);
final String typeSigNoErasure = TypeUtil.resolveTypeSignature(_testBean1Type, "QMap<QString;QString;>;", false);
assertEquals("Ljava.util.Map<Ljava.lang.String;Ljava.lang.String;>;", typeSigNoErasure);
+
+ // test resolution of type paramaters
+ IType mapType = TypeUtil.resolveType(_jdtTestEnvironment.getJavaProject(), "Ljava.util.Map;");
+ assertNotNull(mapType);
+ assertEquals(TypeConstants.TYPE_JAVAOBJECT, TypeUtil.resolveTypeSignature(mapType, "TV;", false));
+
+ // unfound signature
+ assertEquals("QSomeNotRealClass;"
+ , TypeUtil.resolveTypeSignature(_testBean1Type, "QSomeNotRealClass;", false));
+
+ // arrays
+ assertEquals("[I"
+ , TypeUtil.resolveTypeSignature(_testBean1Type, "[I"));
+
+ assertEquals("[Ljava.lang.String;"
+ , TypeUtil.resolveTypeSignature(_testBean1Type, "[QString;"));
+
+ assertEquals("[Ljava.util.Map;"
+ , TypeUtil.resolveTypeSignature(_testBean1Type, "[QMap;"));
+
+ assertEquals("[Ljava.util.Collection;"
+ , TypeUtil.resolveTypeSignature(_testBean1Type, "[QCollection;"));
+
+ // array of arrays
+ assertEquals("[[[Ljava.lang.String;"
+ , TypeUtil.resolveTypeSignature(_testBean1Type, "[[[QString;"));
// cover cases where wildcards and/or capture are used. All should be equivalent to the case for
// the same signature without wildcards and capture
-
+
// with type erasure
runWildcardAndCapture(typeSigWithErasure, true);
// and without type erasure
@@ -168,30 +208,110 @@
assertEquals(expected, TypeUtil.resolveTypeSignature(_testBean1Type, "QMap<!+QString;!+QString;>;", typeErasure));
assertEquals(expected, TypeUtil.resolveTypeSignature(_testBean1Type, "QMap<!+QString;QString;>;", typeErasure));
assertEquals(expected, TypeUtil.resolveTypeSignature(_testBean1Type, "QMap<QString;!+QString;>;", typeErasure));
+
+ assertEquals("Ljava.lang.String;", TypeUtil.resolveTypeSignature(_testBean1Type, "!+QString;", typeErasure));
+
+ }
+
+ public void testCanNeverBeEqual()
+ {
+ // one of the arguments is the enum base
+ assertFalse(TypeUtil.canNeverBeEqual(TypeConstants.TYPE_ENUM_BASE, "Lcom.test.SomeEnum;"));
+ assertFalse(TypeUtil.canNeverBeEqual("Lcom.test.SomeEnum;", TypeConstants.TYPE_ENUM_BASE));
+
+ assertTrue(TypeUtil.canNeverBeEqual("Lcom.test.SomeEnum1;", "Lcom.test.SomeEnum2;"));
+ assertFalse(TypeUtil.canNeverBeEqual("Lcom.test.SomeEnum1;", "Lcom.test.SomeEnum1;"));
+ }
+
+ public void testIsEnumsCompareCompatible()
+ {
+ // one of the arguments is the enum base
+ assertTrue(TypeUtil.isEnumsCompareCompatible(TypeConstants.TYPE_ENUM_BASE, "Lcom.test.SomeEnum;"));
+ assertTrue(TypeUtil.isEnumsCompareCompatible("Lcom.test.SomeEnum;", TypeConstants.TYPE_ENUM_BASE));
+
+ assertFalse(TypeUtil.isEnumsCompareCompatible("Lcom.test.SomeEnum1;", "Lcom.test.SomeEnum2;"));
+ assertTrue(TypeUtil.isEnumsCompareCompatible("Lcom.test.SomeEnum1;", "Lcom.test.SomeEnum1;"));
}
// public void testResolveTypeSignatureITypeStringBoolean() {
// fail("Not yet implemented");
// }
//
-// public void testGetSignature() {
-// fail("Not yet implemented");
-// }
-//
-// public void testResolveMethodSignature() {
-// fail("Not yet implemented");
-// }
-//
+ public void testGetSignature()
+ {
+ assertEquals("Lcom.test.TestBean1;",TypeUtil.getSignature(_testBean1Type));
+ }
+
+ public void testResolveMethodSignature() throws Exception
+ {
+ assertEquals("()Ljava.lang.String;"
+ , TypeUtil.resolveMethodSignature(_testBean1Type, "()QString;"));
+ assertEquals("(Ljava.lang.String;)V"
+ , TypeUtil.resolveMethodSignature(_testBean1Type, "(QString;)V"));
+ assertEquals("(Ljava.lang.String;Z)V"
+ , TypeUtil.resolveMethodSignature(_testBean1Type, "(QString;Z)V"));
+
+ IMethod method = _testBean1Type.getMethod("getStringProp1", null);
+ assertEquals("()Ljava.lang.String;"
+ , TypeUtil.resolveMethodSignature(_testBean1Type, method.getSignature()));
+
+ method = _testBean1Type.getMethod("setStringProperty2", new String[] {"I"});
+ assertEquals("(I)V"
+ , TypeUtil.resolveMethodSignature(_testBean1Type, method.getSignature()));
+ }
+
// public void testGetFullyQualifiedName() {
// fail("Not yet implemented");
// }
//
-// public void testResolveTypeIJavaProjectString() {
-// fail("Not yet implemented");
-// }
-//
-// public void testMatchTypeParameterToArgument() {
-// fail("Not yet implemented");
-// }
+ public void testResolveTypeIJavaProjectString()
+ {
+ assertNotNull(TypeUtil.resolveType(_jdtTestEnvironment.getJavaProject()
+ , "Ljava.lang.String;"));
+ assertEquals(_testBean1Type
+ ,TypeUtil.resolveType(_jdtTestEnvironment.getJavaProject()
+ , "Lcom.test.TestBean1;"));
+ }
+ public void testMatchTypeParameterToArgument() throws Exception
+ {
+ IType mapType = TypeUtil.resolveType(_jdtTestEnvironment.getJavaProject(), "Ljava.util.Map;");
+ assertNotNull(mapType);
+
+ List<String> args = new ArrayList<String>();
+ args.add("Ljava.lang.String;");
+ args.add("Lcom.test.TestBean1;");
+
+ // TestBean1 is the "V" in Map<K,V>
+ assertEquals("Lcom.test.TestBean1;"
+ , TypeUtil.matchTypeParameterToArgument(mapType, "TV;", args));
+
+ // there is no "Q" type arg
+ assertNull(TypeUtil.matchTypeParameterToArgument(mapType, "TQ;", args));
+ // there is no "garbonzo" type arg
+ assertNull(TypeUtil.matchTypeParameterToArgument(mapType, "Tgarbonzo;", args));
+ }
+
+ public void testIsEnumMember() throws Exception
+ {
+ assertTrue(TypeUtil.isEnumMember(_testEnum1Type, "red"));
+ assertTrue(TypeUtil.isEnumMember(_testEnum1Type, "blue"));
+ assertTrue(TypeUtil.isEnumMember(_testEnum1Type, "green"));
+ assertTrue(TypeUtil.isEnumMember(_testEnum1Type, "yellow"));
+ assertTrue(TypeUtil.isEnumMember(_testEnum1Type, "purple"));
+ assertTrue(TypeUtil.isEnumMember(_testEnum1Type, "orange"));
+
+ assertFalse(TypeUtil.isEnumMember(_testEnum1Type, "mauve"));
+ assertFalse(TypeUtil.isEnumMember(_testEnum1Type, "pink"));
+
+ // test the enum base type.. all things may be members of it
+ IType type = _jdtTestEnvironment.getJavaProject().findType("java.lang.Enum");
+ assertNotNull(type);
+ //assertTrue(type.isEnum());
+ assertTrue(TypeUtil.isEnumMember(type, "red"));
+ assertTrue(TypeUtil.isEnumMember(type, "pink"));
+ assertTrue(TypeUtil.isEnumMember(type, "anything"));
+ assertTrue(TypeUtil.isEnumMember(type, "deadbeef"));
+
+ }
}
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/validation/TestJSPSemanticsValidator.java b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/validation/TestJSPSemanticsValidator.java
index 67d1616..a5cb0d8 100644
--- a/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/validation/TestJSPSemanticsValidator.java
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/src/org/eclipse/jst/jsf/core/tests/validation/TestJSPSemanticsValidator.java
@@ -6,12 +6,12 @@
import junit.framework.TestCase;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jst.jsf.context.resolver.structureddocument.IDOMContextResolver;
import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.internal.tld.CMUtil;
import org.eclipse.jst.jsf.core.internal.tld.IJSFConstants;
import org.eclipse.jst.jsf.core.internal.tld.ITLDConstants;
import org.eclipse.jst.jsf.core.tests.TestsPlugin;
@@ -22,7 +22,6 @@
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.validation.internal.operations.WorkbenchReporter;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
import org.eclipse.wst.validation.internal.provisional.core.IValidator;
@@ -60,7 +59,10 @@
// load a dummy tld for core
_testEnv.loadResourceInWebRoot(TestsPlugin.getDefault().getBundle()
, "/testfiles/jsf-core.tld.data", "META-INF/jsf-core.tld");
-
+
+ _testEnv.loadResourceInWebRoot(TestsPlugin.getDefault().getBundle()
+ , "/testfiles/myfaces_html.tld.data", "META-INF/myfaces_html.tld");
+
_jspFile = (IFile)
_testEnv.loadResourceInWebRoot(TestsPlugin.getDefault().getBundle()
, "/testfiles/jsps/testContainment.jsp.data", "testContainment.jsp");
@@ -164,6 +166,7 @@
assertTrue(node instanceof Element);
Element elem = (Element) node;
assertEquals(IJSFConstants.TAG_INPUTTEXT, elem.getLocalName());
+ System.out.println(CMUtil.getElementNamespaceURI(elem));
MyReporter reporter = new MyReporter();
validator.validateContainment(elem, ITLDConstants.URI_JSF_HTML
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/testfiles/TestEnum1.java.data b/jsf/tests/org.eclipse.jst.jsf.core.tests/testfiles/TestEnum1.java.data
new file mode 100644
index 0000000..203499c
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/testfiles/TestEnum1.java.data
@@ -0,0 +1,6 @@
+package org.eclipse.jst.jsf.core.tests.util;
+
+public enum TestEnum1
+{
+ red, blue, green, yellow, orange, purple
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/testfiles/myfaces_core.tld.data b/jsf/tests/org.eclipse.jst.jsf.core.tests/testfiles/myfaces_core.tld.data
new file mode 100644
index 0000000..9e547d2
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/testfiles/myfaces_core.tld.data
@@ -0,0 +1,781 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Copyright 2004,2005,2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+<taglib xmlns="http://java.sun.com/JSP/TagLibraryDescriptor">
+ <tlib-version>1.0</tlib-version>
+ <jsp-version>1.2</jsp-version>
+ <short-name>f</short-name>
+ <uri>http://java.sun.com/jsf/core</uri>
+ <display-name>JSF core tag library.</display-name>
+ <description>
+ This tag library implements the standard JSF core tags.
+ </description>
+ <!--
+======================================================
+ Listener, that does all the startup work (configuration, init).
+======================================================
+-->
+ <listener>
+ <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
+ </listener>
+ <!--
+======================================================
+ actionListener
+======================================================
+-->
+ <tag>
+ <name>actionListener</name>
+ <tag-class>org.apache.myfaces.taglib.core.ActionListenerTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ This tag creates an instance of the specified ActionListener, and
+ associates it with the nearest parent UIComponent.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <attribute>
+ <name>type</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The fully qualified class name of the ActionListener class.</description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ attribute
+======================================================
+-->
+ <tag>
+ <name>attribute</name>
+ <tag-class>javax.faces.webapp.AttributeTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ This tag associates an attribute with the nearest parent
+ UIComponent.
+ <p>
+ When the value is not an EL expression, this tag has the same effect
+ as calling component.getAttributes.put(name, value). When the attribute
+ name specified matches a standard property of the component, that
+ property is set. However it is also valid to assign attributes
+ to components using any arbitrary name; the component itself won't
+ make any use of these but other objects such as custom renderers,
+ validators or action listeners can later retrieve the attribute
+ from the component by name.
+ <p>
+ When the value is an EL expression, this tag has the same effect
+ as calling component.setValueBinding. A call to method
+ component.getAttributes().get(name) will then cause that
+ expression to be evaluated and the result of the expression is
+ returned, not the original EL expression string.
+ <p>
+ See the javadoc for UIComponent.getAttributes for more details.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The name of the attribute.</description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The attribute's value.</description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ converter
+======================================================
+-->
+ <tag>
+ <name>convertDateTime</name>
+ <tag-class>org.apache.myfaces.taglib.core.ConvertDateTimeTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ This tag associates a date time converter with the nearest parent UIComponent.
+
+ Unless otherwise specified, all attributes accept static values or EL expressions.
+ </description>
+ <attribute>
+ <name>dateStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The style of the date. Values include: default, short, medium, long, and full.</description>
+ </attribute>
+ <attribute>
+ <name>locale</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The name of the locale to be used, instead of the default.</description>
+ </attribute>
+ <attribute>
+ <name>pattern</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>A custom Date formatting pattern, in the format used by java.text.SimpleDateFormat.</description>
+ </attribute>
+ <attribute>
+ <name>timeStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The style of the time. Values include: default, short, medium, long, and full.</description>
+ </attribute>
+ <attribute>
+ <name>timeZone</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ The time zone to use instead of GMT (the default timezone). When
+ this value is a value-binding to a TimeZone instance, that
+ timezone is used. Otherwise this value is treated as a String
+ containing a timezone id, ie as the ID parameter of method
+ java.util.TimeZone.getTimeZone(String).
+ </description>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ Specifies whether the date, time, or both should be
+ parsed/formatted. Values include: date, time, and both.
+ Default based on setting of timeStyle and dateStyle.
+ </description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>converter</name>
+ <tag-class>javax.faces.webapp.ConverterTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ This tag creates an instance of the specified Converter, and
+ associates it with the nearest parent UIComponent.
+ </description>
+ <attribute>
+ <name>converterId</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The converter's registered ID.</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>convertNumber</name>
+ <tag-class>org.apache.myfaces.taglib.core.ConvertNumberTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ This tag creates a number formatting converter and associates it
+ with the nearest parent UIComponent.
+
+ Unless otherwise specified, all attributes accept static values or EL expressions.
+ </description>
+ <attribute>
+ <name>currencyCode</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>ISO 4217 currency code</description>
+ </attribute>
+ <attribute>
+ <name>currencySymbol</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ The currency symbol used to format a currency value. Defaults
+ to the currency symbol for locale.
+ </description>
+ </attribute>
+ <attribute>
+ <name>groupingUsed</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Specifies whether output will contain grouping separators. Default: true.</description>
+ </attribute>
+ <attribute>
+ <name>integerOnly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Specifies whether only the integer part of the input will be parsed. Default: false.</description>
+ </attribute>
+ <attribute>
+ <name>locale</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ The name of the locale to be used, instead of the default as
+ specified in the faces configuration file.
+ </description>
+ </attribute>
+ <attribute>
+ <name>maxFractionDigits</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The maximum number of digits in the fractional portion of the number.</description>
+ </attribute>
+ <attribute>
+ <name>maxIntegerDigits</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The maximum number of digits in the integer portion of the number.</description>
+ </attribute>
+ <attribute>
+ <name>minFractionDigits</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The minimum number of digits in the fractional portion of the number.</description>
+ </attribute>
+ <attribute>
+ <name>minIntegerDigits</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The minimum number of digits in the integer portion of the number.</description>
+ </attribute>
+ <attribute>
+ <name>pattern</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>A custom Date formatting pattern, in the format used by java.text.SimpleDateFormat.</description>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ The type of formatting/parsing to be performed. Values include:
+ number, currency, and percent. Default: number.
+ </description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ facet
+======================================================
+-->
+ <tag>
+ <name>facet</name>
+ <tag-class>javax.faces.webapp.FacetTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ This tag adds its child as a facet of the nearest parent UIComponent.
+ A child consisting of multiple elements should be nested within a
+ container component (i.e., within an h:panelGroup for HTML library
+ components).
+
+ Unless otherwise specified, all attributes accept static values or EL expressions.
+ </description>
+ <attribute>
+ <name>name</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The name of the facet to be created. This must be a static value.</description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ loadBundle
+======================================================
+-->
+ <tag>
+ <name>loadBundle</name>
+ <tag-class>org.apache.myfaces.taglib.core.LoadBundleTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Loads a resource bundle and saves it as a variable in the request scope.
+
+ Unless otherwise specified, all attributes accept static values or EL expressions.
+ </description>
+ <attribute>
+ <name>basename</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The base name of the resource bundle.</description>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ The name of the variable in request scope that the resources
+ are saved to. This must be a static value.
+ </description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ param
+======================================================
+-->
+ <tag>
+ <name>param</name>
+ <tag-class>org.apache.myfaces.taglib.core.ParamTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ This tag associates a parameter name-value pair with the nearest
+ parent UIComponent. A UIComponent is created to represent this
+ name-value pair, and stored as a child of the parent component; what
+ effect this has depends upon the renderer of that parent component.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- UIParameter attributes -->
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>name</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>A String containing the name of the parameter.</description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The value of this parameter.</description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ selectitem
+======================================================
+-->
+ <tag>
+ <name>selectItem</name>
+ <tag-class>org.apache.myfaces.taglib.core.SelectItemTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ This tag associates a single SelectItem with the nearest
+ parent UIComponent. The item represents a single option
+ for a component such as an h:selectBooleanCheckbox or h:selectOneMenu.
+ See also component selectItems.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- UISelectItem attributes -->
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>itemDisabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ If true, this component will not be saved during state saving.
+ </description>
+ </attribute>
+ <attribute>
+ <name>itemDescription</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>An optional description for this item.</description>
+ </attribute>
+ <attribute>
+ <name>itemLabel</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The locale-specific label that will be displayed to the user for this item.
+ </description>
+ </attribute>
+ <attribute>
+ <name>itemValue</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The value of this item, of the same type as the parent component's value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An EL expression that refers to a javax.faces.model.SelectItem instance.
+ </description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ selectitems
+======================================================
+-->
+ <tag>
+ <name>selectItems</name>
+ <tag-class>org.apache.myfaces.taglib.core.SelectItemsTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ This tag associates a set of selection list items with the nearest
+ parent UIComponent. The set of SelectItem objects is retrieved via
+ a value-binding.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- UISelectItems attributes -->
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An EL expression that specifies the contents of the selection list.
+ The expression can refer to one of the following:
+ <ol>
+ <li>A single SelectItem</li>
+ <li>An array or Collection of SelectItem instances</li>
+ <li>A Map. The contents of the Map are used to create SelectItem
+ instances, where the SelectItem's label is the map's key value,
+ and the SelectItem's value is the map's value. When using a
+ map, it is recommended that an ordered implementation such as
+ java.util.TreeMap is used.</li>
+ </ol>
+ The value properties of each of the SelectItems must be of the same
+ basic type as the parent component's value.
+
+ </description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ subview
+======================================================
+-->
+ <tag>
+ <name>subview</name>
+ <tag-class>org.apache.myfaces.taglib.core.SubviewTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ This tag associates a set of UIComponents with the nearest parent
+ UIComponent. It acts as a naming container to make the IDs of its
+ component elements unique.
+
+ Unless otherwise specified, all attributes accept static values or EL expressions.
+ </description>
+ <attribute>
+ <name>id</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ validators
+======================================================
+-->
+ <tag>
+ <name>validateDoubleRange</name>
+ <tag-class>org.apache.myfaces.taglib.core.ValidateDoubleRangeTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Creates a validator and associateds it with the nearest parent
+ UIComponent. When invoked, the validator ensures that values are
+ valid doubles that lie within the minimum and maximum values specified.
+
+ Commonly associated with a h:inputText entity.
+
+ Unless otherwise specified, all attributes accept static values or EL expressions.
+ </description>
+ <!-- validator min/max attributes -->
+ <attribute>
+ <name>minimum</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The smallest value that should be considered valid.</description>
+ </attribute>
+ <attribute>
+ <name>maximum</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The largest value that should be considered valid.</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>validateLength</name>
+ <tag-class>org.apache.myfaces.taglib.core.ValidateLengthTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Creates a validator and associateds it with the nearest parent
+ UIComponent. When invoked, the validator ensures that values are
+ valid strings with a length that lies within the minimum and maximum
+ values specified.
+
+ Commonly associated with a h:inputText entity.
+
+ Unless otherwise specified, all attributes accept static values or EL expressions.
+ </description>
+ <!-- validator min/max attributes -->
+ <attribute>
+ <name>minimum</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The smallest value that should be considered valid.</description>
+ </attribute>
+ <attribute>
+ <name>maximum</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The largest value that should be considered valid.</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>validateLongRange</name>
+ <tag-class>org.apache.myfaces.taglib.core.ValidateLongRangeTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Creates a validator and associateds it with the nearest parent
+ UIComponent. When invoked, the validator ensures that values
+ are valid longs that lie within the minimum and maximum values specified.
+
+ Commonly associated with a h:inputText entity.
+
+ Unless otherwise specified, all attributes accept static values or EL expressions.
+ </description>
+ <!-- validator min/max attributes -->
+ <attribute>
+ <name>minimum</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The smallest value that should be considered valid.</description>
+ </attribute>
+ <attribute>
+ <name>maximum</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The largest value that should be considered valid.</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>validator</name>
+ <tag-class>javax.faces.webapp.ValidatorTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Creates a validator and associates it with the nearest parent
+ UIComponent. During the validation phase (or the apply-request-values
+ phase for immediate components), if the associated component has any
+ submitted value and the conversion of that value to the required
+ type has succeeded then the specified validator type is
+ invoked to test the validity of the converted value.
+ <p>
+ Commonly associated with an h:inputText entity, but may be applied to
+ any input component.
+ <p>
+ Some validators may allow the component to use attributes to define
+ component-specific validation constraints; see the f:attribute tag.
+ See also the "validator" attribute of all input components, which
+ allows a component to specify an arbitrary validation <i>method</i>
+ (rather than a registered validation type, as this tag does).
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <attribute>
+ <name>validatorId</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The registered ID of the desired Validator.</description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ valueChangeListener
+======================================================
+-->
+ <tag>
+ <name>valueChangeListener</name>
+ <tag-class>org.apache.myfaces.taglib.core.ValueChangeListenerTag</tag-class>
+ <body-content>empty</body-content>
+ <description>
+ Adds the specified ValueChangeListener to the nearest parent
+ UIComponent (which is expected to be a UIInput component).
+ Whenever the form containing the parent UIComponent is submitted,
+ an instance of the specified type is created. If the submitted
+ value from the component is different from the component's current
+ value then a ValueChangeEvent is queued. When the ValueChangeEvent
+ is processed (at end of the validate phase for non-immediate components,
+ or at end of the apply-request-values phase for immediate components)
+ the object's processValueChange method is invoked.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <attribute>
+ <name>type</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The name of a Java class that implements ValueChangeListener.</description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ verbatim
+======================================================
+-->
+ <tag>
+ <name>verbatim</name>
+ <tag-class>org.apache.myfaces.taglib.core.VerbatimTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Outputs its body as verbatim text. No JSP tags within the verbatim
+ tag (including JSF tags) are evaluated; the content is treated
+ simply as literal text to be copied to the response.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <attribute>
+ <name>escape</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>If true, generated markup is escaped. Default: false.</description>
+ </attribute>
+ </tag>
+ <!--
+======================================================
+ view
+======================================================
+-->
+ <tag>
+ <name>view</name>
+ <tag-class>org.apache.myfaces.taglib.core.ViewTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Creates a JSF View, which is a container that holds all of the
+ components that are part of the view.
+
+ Unless otherwise specified, all attributes accept static values or EL expressions.
+ </description>
+ <attribute>
+ <name>locale</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The locale of this view. Default: the default locale from the configuration file.</description>
+ </attribute>
+ </tag>
+</taglib>
diff --git a/jsf/tests/org.eclipse.jst.jsf.core.tests/testfiles/myfaces_html.tld.data b/jsf/tests/org.eclipse.jst.jsf.core.tests/testfiles/myfaces_html.tld.data
new file mode 100644
index 0000000..386e895
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.core.tests/testfiles/myfaces_html.tld.data
@@ -0,0 +1,6200 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+-->
+<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
+<taglib xmlns="http://java.sun.com/JSP/TagLibraryDescriptor">
+ <tlib-version>1.0</tlib-version>
+ <jsp-version>1.2</jsp-version>
+ <short-name>h</short-name>
+ <uri>http://java.sun.com/jsf/html</uri>
+ <display-name>JSF HTML tag library.</display-name>
+ <description>
+ This tag library implements the standard JSF HTML tags.
+ </description>
+ <!--
+*************************************************************************************
+Start of revised 1.0 conforming tags (in alphabetical order)
+*************************************************************************************
+-->
+ <!-- column -->
+ <tag>
+ <name>column</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlColumnTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ This tag is commonly used as a child of the dataTable tag, to
+ represent a column of data. It can be decorated with "header" and
+ "footer" facets to drive the output of header and footer rows.
+ Row values are specified via its children.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ </tag>
+ <!-- commandButton -->
+ <tag>
+ <name>commandButton</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlCommandButtonTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ This tag renders as an HTML input element.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- all standard attributes of the commandButton tag -->
+ <!-- UICommand attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>action</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Specifies the action to take when this command is invoked.
+
+ If the value is an expression, it is expected to be a method
+ binding EL expression that identifies an action method. An action method
+ accepts no parameters and has a String return value, called the action
+ outcome, that identifies the next view displayed. The phase that this
+ event is fired in can be controlled via the immediate attribute.
+
+ If the value is a string literal, it is treated as a navigation outcome
+ for the current view. This is functionally equivalent to a reference to
+ an action method that returns the string literal.
+ </description>
+ </attribute>
+ <attribute>
+ <name>actionListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression that identifies an action listener method
+ to be invoked if this component is activated by the user. An action
+ listener method accepts a parameter of type javax.faces.event.ActionEvent
+ and returns void. The phase that this event is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which action events
+ should fire. During normal event processing, action methods and
+ action listener methods are fired during the "invoke application"
+ phase of request processing. If this attribute is set to "true",
+ these methods are fired instead at the end of the "apply request
+ values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 button attributes -->
+ <attribute>
+ <name>accesskey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Sets the access key for this element.</description>
+ </attribute>
+ <attribute>
+ <name>alt</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies alternative text that can be used by a browser that can't show this element.</description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onselect</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is selected.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: A hint to the user agent about the content type of the linked resource.</description>
+ </attribute>
+ <attribute>
+ <name>size</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial width of this control.</description>
+ </attribute>
+ <!-- HtmlCommandButton attributes -->
+ <attribute>
+ <name>image</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The URL of an image that renders in place of the button.</description>
+ </attribute>
+ </tag>
+ <!-- commandLink -->
+ <tag>
+ <name>commandLink</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlCommandLinkTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ This tag renders as an HTML a element.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- all standard attributes of the commandLink tag -->
+ <!-- UICommand attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>action</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Specifies the action to take when this command is invoked.
+
+ If the value is an expression, it is expected to be a method
+ binding EL expression that identifies an action method. An action method
+ accepts no parameters and has a String return value, called the action
+ outcome, that identifies the next view displayed. The phase that this
+ event is fired in can be controlled via the immediate attribute.
+
+ If the value is a string literal, it is treated as a navigation outcome
+ for the current view. This is functionally equivalent to a reference to
+ an action method that returns the string literal.
+ </description>
+ </attribute>
+ <attribute>
+ <name>actionListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression that identifies an action listener method
+ to be invoked if this component is activated by the user. An action
+ listener method accepts a parameter of type javax.faces.event.ActionEvent
+ and returns void. The phase that this event is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which action events
+ should fire. During normal event processing, action methods and
+ action listener methods are fired during the "invoke application"
+ phase of request processing. If this attribute is set to "true",
+ these methods are fired instead at the end of the "apply request
+ values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 anchor (=a) attributes -->
+ <attribute>
+ <name>accesskey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Sets the access key for this element.</description>
+ </attribute>
+ <attribute>
+ <name>charset</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the character encoding of the linked resource.</description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: A hint to the user agent about the content type of the linked resource.</description>
+ </attribute>
+ <attribute>
+ <name>target</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Names the frame that should display content generated by invoking this action. </description>
+ </attribute>
+ <attribute>
+ <name>coords</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: The coordinates of regions within a client side image map.</description>
+ </attribute>
+ <!-- "href" is a special LinkRenderer attribute -->
+ <attribute>
+ <name>hreflang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: The language of the linked resource.</description>
+ </attribute>
+ <!-- "name" cannot be set by user -->
+ <attribute>
+ <name>rel</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: The relationship between the current document and
+ the linked resource.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rev</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: The type(s) describing the reverse link for the linked
+ resource.
+ </description>
+ </attribute>
+ <attribute>
+ <name>shape</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: The shape of a region in a client side image map.
+ </description>
+ </attribute>
+ </tag>
+ <!-- data_table -->
+ <tag>
+ <name>dataTable</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlDataTableTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ This component renders as an HTML table element. It has as its
+ children h:column entities, which describe the columns of the table.
+ It can be decorated with facets named "header" and "footer" to
+ specify header and footer rows.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- all standard attributes of the dataTable tag -->
+ <!-- UIPanel attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>columnClasses</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ A comma separated list of CSS class names to apply to td elements in
+ each column.
+ </description>
+ </attribute>
+ <attribute>
+ <name>footerClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class to be applied to footer cells.</description>
+ </attribute>
+ <attribute>
+ <name>headerClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class to be applied to header cells.</description>
+ </attribute>
+ <attribute>
+ <name>rowClasses</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ A comma separated list of CSS class names to apply to td elements in
+ each row.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 table attributes -->
+ <attribute>
+ <name>align</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Specifies the horizontal alignment of this element. Deprecated in HTML 4.01.</description>
+ </attribute>
+ <attribute>
+ <name>border</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the width of the border of this element, in pixels. Deprecated in HTML 4.01.</description>
+ </attribute>
+ <attribute>
+ <name>bgcolor</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The background color of this element.</description>
+ </attribute>
+ <attribute>
+ <name>datafld</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>datasrc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>dataformatas</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>cellpadding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Specifies the amount of empty space between the cell border and
+ its contents. It can be either a pixel length or a percentage.
+ </description>
+ </attribute>
+ <attribute>
+ <name>cellspacing</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Specifies the amount of space between the cells of the table.
+ It can be either a pixel length or a percentage of available
+ space.
+ </description>
+ </attribute>
+ <attribute>
+ <name>frame</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Controls what part of the frame that surrounds a table is
+ visible. Values include: void, above, below, hsides, lhs,
+ rhs, vsides, box, and border.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rules</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Controls how rules are rendered between cells. Values include:
+ none, groups, rows, cols, and all.
+ </description>
+ </attribute>
+ <attribute>
+ <name>summary</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Provides a summary of the contents of the table, for
+ accessibility purposes.
+ </description>
+ </attribute>
+ <attribute>
+ <name>width</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Specifies the desired width of the table, as a pixel length or
+ a percentage of available space.
+ </description>
+ </attribute>
+ <!-- UIData attributes -->
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>An EL expression that specifies the data model that backs this table. The value can be of any type.
+
+ A value of type DataModel is used directly. Array-like parameters of type java.util.List, array of Object,
+ java.sql.ResultSet, or javax.servlet.jsp.jstl.sql.Result are wrapped in a DataModel.
+
+ Other values are wrapped in a DataModel as a single row.</description>
+ </attribute>
+ <attribute>
+ <name>var</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Defines the name of the request-scope variable that will hold the current row during iteration. This value must be a static value.</description>
+ </attribute>
+ <attribute>
+ <name>rows</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The number of rows to be displayed. Specify zero for all remaining rows in the table.</description>
+ </attribute>
+ <attribute>
+ <name>first</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The index of the first row to be displayed, where 0 is the first row.</description>
+ </attribute>
+ </tag>
+ <!-- form -->
+ <tag>
+ <name>form</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlFormTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders an HTML form element.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- UIForm attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 form attributes -->
+ <attribute>
+ <name>target</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Names the frame that should display content generated by invoking this action. </description>
+ </attribute>
+ <attribute>
+ <name>accept</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Provides a comma-separated list of content types that the
+ server processing this form can handle.
+ </description>
+ </attribute>
+ <attribute>
+ <name>acceptCharset</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: The list of character encodings accepted by the server for this
+ form.
+ </description>
+ </attribute>
+ <attribute>
+ <name>enctype</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: The content type used to submit this form to the server.
+ </description>
+ </attribute>
+ <attribute>
+ <name>onreset</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when this form is reset.</description>
+ </attribute>
+ <attribute>
+ <name>onsubmit</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when this form is submitted.</description>
+ </attribute>
+ </tag>
+ <!-- graphic_image -->
+ <tag>
+ <name>graphicImage</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlGraphicImageTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders an HTML img element.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- UIGraphic attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>url</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An alias for the "value" attribute.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The URL of the image. If the URL starts with a '/', it is relative
+ to the context path of the web application.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- The subset of HTML 4.0 img attributes that are supported by the JSF 1.1 specification -->
+ <attribute>
+ <name>alt</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies alternative text that can be used by a browser that can't show this element.</description>
+ </attribute>
+ <attribute>
+ <name>height</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Overrides the natural height of this image, by specifying height in pixels.</description>
+ </attribute>
+ <attribute>
+ <name>ismap</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies server-side image map handling for this image.</description>
+ </attribute>
+ <attribute>
+ <name>longdesc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: A link to a long description of the image.</description>
+ </attribute>
+ <!-- "name" attribute cannot be set directly by user -->
+ <!-- "src" attribute cannot be set directly, use "url" instead! -->
+ <attribute>
+ <name>usemap</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies an image map to use with this image.</description>
+ </attribute>
+ <attribute>
+ <name>width</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Overrides the natural width of this image, by specifying width in pixels.</description>
+ </attribute>
+ </tag>
+ <!-- input_hidden -->
+ <tag>
+ <name>inputHidden</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlInputHiddenTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders as an HTML input tag with its type set to "hidden".
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ </tag>
+ <!-- input_secret -->
+ <tag>
+ <name>inputSecret</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlInputSecretTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders as an HTML input tag with its type set to "password".
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- todo: not all html_input_attributes are used for input_secret
+ in RI (e.g. datafld, datasrc, ...) -->
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 input attributes -->
+ <attribute>
+ <name>accesskey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Sets the access key for this element.</description>
+ </attribute>
+ <attribute>
+ <name>align</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Specifies the horizontal alignment of this element. Deprecated in HTML 4.01.</description>
+ </attribute>
+ <attribute>
+ <name>alt</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies alternative text that can be used by a browser that can't show this element.</description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>onselect</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is selected.</description>
+ </attribute>
+ <attribute>
+ <name>readonly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: When true, indicates that this component cannot be modified by the user.
+ The element may receive focus unless it has also been disabled.
+ </description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>maxlength</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: The maximum number of characters allowed to be entered.</description>
+ </attribute>
+ <attribute>
+ <name>size</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: The initial width of this control, in characters.</description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- SecretRenderer attributes -->
+ <attribute>
+ <name>redisplay</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ If true, the value will be re-sent (in plaintext) when the form
+ is rerendered (see JSF.7.4.4). Default is false.
+ </description>
+ </attribute>
+ </tag>
+ <!-- input_text -->
+ <tag>
+ <name>inputText</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlInputTextTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders a HTML input element.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- all standard attributes of the inputText tag -->
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 input attributes -->
+ <attribute>
+ <name>accesskey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Sets the access key for this element.</description>
+ </attribute>
+ <attribute>
+ <name>align</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Specifies the horizontal alignment of this element. Deprecated in HTML 4.01.</description>
+ </attribute>
+ <attribute>
+ <name>alt</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies alternative text that can be used by a browser that can't show this element.</description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>onselect</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is selected.</description>
+ </attribute>
+ <attribute>
+ <name>readonly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: When true, indicates that this component cannot be modified by the user.
+ The element may receive focus unless it has also been disabled.
+ </description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>maxlength</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: The maximum number of characters allowed to be entered.</description>
+ </attribute>
+ <attribute>
+ <name>size</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: The initial width of this control, in characters.</description>
+ </attribute>
+ </tag>
+ <!-- input_textarea -->
+ <tag>
+ <name>inputTextarea</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlInputTextareaTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders a HTML textarea element.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- all standard attributes of the inputTextarea tag -->
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 textarea attributes -->
+ <attribute>
+ <name>datafld</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>datasrc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>dataformatas</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>accesskey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Sets the access key for this element.</description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>onselect</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is selected.</description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>readonly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: When true, indicates that this component cannot be modified by the user.
+ The element may receive focus unless it has also been disabled.
+ </description>
+ </attribute>
+ <attribute>
+ <name>cols</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: The width of this element, in characters.</description>
+ </attribute>
+ <attribute>
+ <name>rows</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: The height of this element, in characters.</description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ </tag>
+ <!-- message -->
+ <tag>
+ <name>message</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlMessageTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders the first FacesMessage that is assigned to the component
+ referenced by the "for" attribute.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- all standard attributes of the message tag -->
+ <!-- UIMessage attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>for</name>
+ <required>true</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An EL expression, returning a String, with the unique ID of the component
+ for which messages should be displayed. This string has the same format
+ as that accepted by the UIComponent.findComponent() method.
+ </description>
+ </attribute>
+ <attribute>
+ <name>showSummary</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An EL expression, returning a boolean, that controls whether the
+ summary text of the associated messages is displayed. Default: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>showDetail</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An EL expression, returning a boolean, that controls whether the
+ detail text of the associated messages is displayed. Default: false.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HtmlMessage attributes -->
+ <attribute>
+ <name>infoClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS class to be used for messages with severity "INFO".</description>
+ </attribute>
+ <attribute>
+ <name>infoStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS style to be used for messages with severity "INFO".</description>
+ </attribute>
+ <attribute>
+ <name>warnClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS class to be used for messages with severity "WARN".</description>
+ </attribute>
+ <attribute>
+ <name>warnStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS style to be used for messages with severity "WARN".</description>
+ </attribute>
+ <attribute>
+ <name>errorClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS class to be used for messages with severity "ERROR".</description>
+ </attribute>
+ <attribute>
+ <name>errorStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS style to be used for messages with severity "ERROR".</description>
+ </attribute>
+ <attribute>
+ <name>fatalClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS class to be used for messages with severity "FATAL".</description>
+ </attribute>
+ <attribute>
+ <name>fatalStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS style to be used for messages with severity "FATAL".</description>
+ </attribute>
+ <attribute>
+ <name>tooltip</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ If true, the message summary will be rendered as a tooltip (i.e. HTML title attribute).
+ </description>
+ </attribute>
+ </tag>
+ <!-- messages -->
+ <tag>
+ <name>messages</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlMessagesTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders all or some FacesMessages depending on the "for" and
+ "globalOnly" attributes:<br>
+ <ul>
+ <li>If globalOnly = true, only global messages, that have no
+ associated clientId, will be displayed.</li>
+ <li>else if there is a "for" attribute, only messages that are
+ assigned to the component referenced by the "for" attribute
+ are displayed.</li>
+ <li>else all messages are displayed.</li>
+ </ul>
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- all standard attributes of the messages tag -->
+ <!-- UIMessages attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>showSummary</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that controls whether the summary text of the
+ associated messages is displayed. Default: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>showDetail</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that controls whether the detail text of the
+ associated messages is displayed. Default: false.
+ </description>
+ </attribute>
+ <attribute>
+ <name>globalOnly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that controls whether global messages (those without
+ IDs) should be displayed. Default: true.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HtmlMessages attributes -->
+ <attribute>
+ <name>infoClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS class to be used for messages with severity "INFO".</description>
+ </attribute>
+ <attribute>
+ <name>infoStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS style to be used for messages with severity "INFO".</description>
+ </attribute>
+ <attribute>
+ <name>warnClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS class to be used for messages with severity "WARN".</description>
+ </attribute>
+ <attribute>
+ <name>warnStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS style to be used for messages with severity "WARN".</description>
+ </attribute>
+ <attribute>
+ <name>errorClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS class to be used for messages with severity "ERROR".</description>
+ </attribute>
+ <attribute>
+ <name>errorStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS style to be used for messages with severity "ERROR".</description>
+ </attribute>
+ <attribute>
+ <name>fatalClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS class to be used for messages with severity "FATAL".</description>
+ </attribute>
+ <attribute>
+ <name>fatalStyle</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>CSS style to be used for messages with severity "FATAL".</description>
+ </attribute>
+ <attribute>
+ <name>layout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The layout: "table" or "list". Default: list</description>
+ </attribute>
+ <attribute>
+ <name>tooltip</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ If true, the message summary will be rendered as a tooltip (i.e. HTML title attribute).
+ </description>
+ </attribute>
+ </tag>
+ <!-- outputLabel -->
+ <tag>
+ <name>outputLabel</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlOutputLabelTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders a HTML label element.
+
+ In addition to the JSF specification, MyFaces allows it to directly
+ give an output text via the "value" attribute.
+
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- all standard attributes of the outputLabel tag -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 label attributes -->
+ <attribute>
+ <name>accesskey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Sets the access key for this element.</description>
+ </attribute>
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <!-- "for" is a specific LabelRenderer attribute -->
+ <!-- LabelRenderer attributes -->
+ <attribute>
+ <name>for</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The client ID of the target input element of this label.</description>
+ </attribute>
+ </tag>
+ <!-- output_link -->
+ <tag>
+ <name>outputLink</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlOutputLinkTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders a HTML a element. Child f:param elements are added to the href
+ attribute as query parameters. Other children are rendered as the link text or image.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 anchor (=a) attributes -->
+ <attribute>
+ <name>accesskey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Sets the access key for this element.</description>
+ </attribute>
+ <attribute>
+ <name>charset</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the character encoding of the linked resource.</description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>type</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: A hint to the user agent about the content type of the linked resource.</description>
+ </attribute>
+ <attribute>
+ <name>target</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Names the frame that should display content generated by invoking this action. </description>
+ </attribute>
+ <attribute>
+ <name>coords</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: The coordinates of regions within a client side image map.</description>
+ </attribute>
+ <!-- "href" is a special LinkRenderer attribute -->
+ <attribute>
+ <name>hreflang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: The language of the linked resource.</description>
+ </attribute>
+ <!-- "name" cannot be set by user -->
+ <attribute>
+ <name>rel</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: The relationship between the current document and
+ the linked resource.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rev</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: The type(s) describing the reverse link for the linked
+ resource.
+ </description>
+ </attribute>
+ <attribute>
+ <name>shape</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: The shape of a region in a client side image map.
+ </description>
+ </attribute>
+ </tag>
+ <!-- output_message -->
+ <tag>
+ <name>outputFormat</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlOutputFormatTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders as text, applying the child f:param values to the value
+ attribute as a MessageFormat string. If this element has an ID
+ or CSS style properties, the text is wrapped in a span element.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>escape</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ Indicates whether rendered markup should be escaped.
+ Default: true
+ </description>
+ </attribute>
+ </tag>
+ <!-- output_text -->
+ <tag>
+ <name>outputText</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlOutputTextTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Renders the value of the associated UIOutput component. If this
+ element has an ID or CSS style properties, the text is wrapped in
+ a span element.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>escape</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ Indicates whether rendered markup should be escaped.
+ Default: true
+ </description>
+ </attribute>
+ </tag>
+ <!-- panel_grid -->
+ <tag>
+ <name>panelGrid</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlPanelGridTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ This element renders as an HTML table with specified number of
+ columns. Children of this element are rendered as cells in the
+ table, filling rows from left to right. Facets named "header"
+ and "footer" are optional and specify the content of the thead
+ and tfoot rows, respectively.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- UIPanel attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 table attributes -->
+ <attribute>
+ <name>align</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Specifies the horizontal alignment of this element. Deprecated in HTML 4.01.</description>
+ </attribute>
+ <attribute>
+ <name>border</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the width of the border of this element, in pixels. Deprecated in HTML 4.01.</description>
+ </attribute>
+ <attribute>
+ <name>bgcolor</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The background color of this element.</description>
+ </attribute>
+ <attribute>
+ <name>datafld</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>datasrc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>dataformatas</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>cellpadding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Specifies the amount of empty space between the cell border and
+ its contents. It can be either a pixel length or a percentage.
+ </description>
+ </attribute>
+ <attribute>
+ <name>cellspacing</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Specifies the amount of space between the cells of the table.
+ It can be either a pixel length or a percentage of available
+ space.
+ </description>
+ </attribute>
+ <attribute>
+ <name>frame</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Controls what part of the frame that surrounds a table is
+ visible. Values include: void, above, below, hsides, lhs,
+ rhs, vsides, box, and border.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rules</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Controls how rules are rendered between cells. Values include:
+ none, groups, rows, cols, and all.
+ </description>
+ </attribute>
+ <attribute>
+ <name>summary</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Provides a summary of the contents of the table, for
+ accessibility purposes.
+ </description>
+ </attribute>
+ <attribute>
+ <name>width</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ HTML: Specifies the desired width of the table, as a pixel length or
+ a percentage of available space.
+ </description>
+ </attribute>
+ <attribute>
+ <name>columnClasses</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ A comma separated list of CSS class names to apply to td elements in
+ each column.
+ </description>
+ </attribute>
+ <attribute>
+ <name>footerClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class to be applied to footer cells.</description>
+ </attribute>
+ <attribute>
+ <name>headerClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class to be applied to header cells.</description>
+ </attribute>
+ <attribute>
+ <name>rowClasses</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>
+ A comma separated list of CSS class names to apply to td elements in
+ each row.
+ </description>
+ </attribute>
+ <!-- GridRenderer attributes -->
+ <attribute>
+ <name>columns</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Specifies the number of columns in the grid.</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>panelGroup</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlPanelGroupTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ This element is used to group other components where the
+ specification requires one child element. If any of the HTML or
+ CSS attributes are set, its content is rendered within a span element.
+
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+ </description>
+ <!-- all standard attributes of the panelGroup tag -->
+ <!-- UIPanel attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>selectBooleanCheckbox</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlSelectBooleanCheckboxTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Allow the user to choose a "true" or "false" value, presented as a
+ checkbox.
+ <p>
+ Renders as an HTML input tag with its type set to "checkbox", and
+ its name attribute set to the id. The "checked" attribute is rendered
+ if the value of this component is true.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- UISelectBoolean attributes -->
+ <!-- "selected" attribute is covered by HTML "checked" attribute -->
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 input attributes for type "checkbox" -->
+ <attribute>
+ <name>accesskey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Sets the access key for this element.</description>
+ </attribute>
+ <attribute>
+ <name>alt</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies alternative text that can be used by a browser that can't show this element.</description>
+ </attribute>
+ <attribute>
+ <name>datafld</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>datasrc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>dataformatas</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>onselect</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is selected.</description>
+ </attribute>
+ <attribute>
+ <name>readonly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: When true, indicates that this component cannot be modified by the user.
+ The element may receive focus unless it has also been disabled.
+ </description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>selectManyCheckbox</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlSelectManyCheckboxTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Allow the user to select zero or more items from a set of
+ available options. This is presented as a table with one cell per
+ available option; each cell contains a checkbox and the option's
+ label. The "layout" attribute determines whether the checkboxes
+ are laid out horizontally or vertically.
+ <p>
+ The set of available options is defined by adding child
+ f:selectItem or f:selectItems components to this component.
+ <p>
+ The value attribute must be a value-binding expression to a
+ property of type List, Object array or primitive array. That
+ "collection" is expected to contain objects of the same type as
+ SelectItem.getValue() returns for the child SelectItem objects.
+ On rendering, any child whose value is in the list will be
+ selected initially. During the update phase, the property setter
+ is called to replace the original collection with a completely
+ new collection object of the appropriate type. The new collection
+ object contains the value of each child SelectItem object that
+ is currently selected.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- all standard attributes of the selectManyCheckbox tag -->
+ <!-- UISelectMany attributes -->
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 input attributes for type "checkbox" -->
+ <attribute>
+ <name>accesskey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Sets the access key for this element.</description>
+ </attribute>
+ <attribute>
+ <name>alt</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies alternative text that can be used by a browser that can't show this element.</description>
+ </attribute>
+ <attribute>
+ <name>datafld</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>datasrc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>dataformatas</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>onselect</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is selected.</description>
+ </attribute>
+ <attribute>
+ <name>readonly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: When true, indicates that this component cannot be modified by the user.
+ The element may receive focus unless it has also been disabled.
+ </description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <!-- CheckboxListRenderer attributes -->
+ <attribute>
+ <name>layout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>Controls the layout direction of the child elements. Values include:
+ lineDirection (vertical) and pageDirection (horzontal).</description>
+ </attribute>
+ <!--TODO: disabledClass, enabledClass -->
+ <attribute>
+ <name>enabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class assigned to the label element for enabled choices.</description>
+ </attribute>
+ <attribute>
+ <name>disabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class assigned to the label element for enabled choices.</description>
+ </attribute>
+ </tag>
+ <tag>
+ <name>selectManyListbox</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlSelectManyListboxTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Allow the user to select zero or more items from a set of
+ available options. This is presented as a listbox which allows
+ multiple rows in the list to be selected simultaneously.
+ <p>
+ The set of available options is defined by adding child
+ f:selectItem or f:selectItems components to this component.
+ <p>
+ The list is rendered as an HTML select element. The "multiple"
+ attribute is set on the element and the size attribute is set to
+ the provided value, defaulting to the number of items in the list
+ if no value is provided. If the size is set to 1, then a
+ "drop-down" list (aka "combo-box") is presented, though if this is
+ the intention then a selectManyMenu should be used instead.
+ <p>
+ The value attribute must be a value-binding expression to a
+ property of type List, Object array or primitive array. That
+ "collection" is expected to contain objects of the same type as
+ SelectItem.getValue() returns for the child SelectItem objects.
+ On rendering, any child whose value is in the list will be
+ selected initially. During the update phase, the property is set
+ to contain a "collection" of values for those child SelectItem
+ objects that are currently selected.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- UISelectMany attributes -->
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 select attributes -->
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>readonly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: When true, indicates that this component cannot be modified by the user.
+ The element may receive focus unless it has also been disabled.
+ </description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>datafld</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>datasrc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>dataformatas</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <!-- "multiple" cannot be set manually -->
+ <!-- "name" cannot be set manually -->
+ <!-- "size" cannot be set directly for it is a MenuRenderer specific attribute -->
+ <!-- ListboxRenderer attributes -->
+ <attribute>
+ <name>size</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>see JSF Spec.</description>
+ </attribute>
+ <attribute>
+ <name>enabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>disabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>selectManyMenu</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlSelectManyMenuTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Allow the user to select zero or more items from a set of available
+ options. This is presented as a drop-down "combo-box" which allows
+ multiple rows in the list to be selected simultaneously.
+ <p>
+ The set of available options is defined by adding child
+ f:selectItem or f:selectItems components to this component.
+ <p>
+ Renders as an HTML select element, with the choices made up of
+ child f:selectItem or f:selectItems elements. The multiple
+ attribute is set and the size attribute is set to 1.
+ <p>
+ The value attribute must be a value-binding expression to a
+ property of type List, Object array or primitive array. That
+ "collection" is expected to contain objects of the same type as
+ SelectItem.getValue() returns for the child SelectItem objects.
+ On rendering, any child whose value is in the list will be
+ selected initially. During the update phase, the property is set
+ to contain a "collection" of values for those child SelectItem
+ objects that are currently selected.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- UISelectMany attributes -->
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 select attributes -->
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>readonly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: When true, indicates that this component cannot be modified by the user.
+ The element may receive focus unless it has also been disabled.
+ </description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>datafld</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>datasrc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>dataformatas</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <!-- "multiple" cannot be set manually -->
+ <!-- "name" cannot be set manually -->
+ <!-- "size" cannot be set directly for it is a MenuRenderer specific attribute -->
+ <attribute>
+ <name>enabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>disabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <tag>
+ <name>selectOneListbox</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlSelectOneListboxTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Allow the user to choose one option from a set of options.
+ <p>
+ Rendered as a listbox with the MULTIPLE attribute set to false.
+ <p>
+ The available choices are defined via child f:selectItem or
+ f:selectItems elements. The size of the listbox defaults to the
+ number of available choices; if size is explicitly set to a
+ smaller value, then scrollbars will be rendered. If size is set
+ to 1 then a "drop-down menu" (aka "combo-box") is rendered, though
+ if this is the intent then selectOneMenu should be used instead.
+ <p>
+ The value attribute of this component is read to determine
+ which of the available options is initially selected; its value
+ should match the "value" property of one of the child SelectItem
+ objects.
+ <p>
+ On submit of the enclosing form, the value attribute's bound
+ property is updated to contain the "value" property from the
+ chosen SelectItem.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- UISelectOne attributes -->
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 select attributes -->
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>readonly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: When true, indicates that this component cannot be modified by the user.
+ The element may receive focus unless it has also been disabled.
+ </description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>datafld</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>datasrc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>dataformatas</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <!-- "multiple" cannot be set manually -->
+ <!-- "name" cannot be set manually -->
+ <!-- "size" cannot be set directly for it is a MenuRenderer specific attribute -->
+ <!-- ListboxRenderer attributes -->
+ <attribute>
+ <name>size</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>see JSF Spec.</description>
+ </attribute>
+ <attribute>
+ <name>enabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>disabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <!-- selectOneMenu -->
+ <tag>
+ <name>selectOneMenu</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlSelectOneMenuTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Allow the user to choose one option from a set of options.
+ <p>
+ Renders a drop-down menu (aka "combo-box") containing a set of
+ choices, of which only one can be chosen at a time. The available
+ choices are defined via child f:selectItem or f:selectItems
+ elements.
+ <p>
+ The value attribute of this component is read to determine
+ which of the available options is initially selected; its value
+ should match the "value" property of one of the child SelectItem
+ objects.
+ <p>
+ On submit of the enclosing form, the value attribute's bound property
+ is updated to contain the "value" property from the chosen SelectItem.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- all standard attributes of the selectOneMenu tag -->
+ <!-- UISelectOne attributes -->
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 select attributes -->
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>readonly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: When true, indicates that this component cannot be modified by the user.
+ The element may receive focus unless it has also been disabled.
+ </description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>datafld</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>datasrc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>dataformatas</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <!-- "multiple" cannot be set manually -->
+ <!-- "name" cannot be set manually -->
+ <!-- "size" cannot be set directly for it is a MenuRenderer specific attribute -->
+ <attribute>
+ <name>enabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>disabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+ <!-- selectOneRadio -->
+ <tag>
+ <name>selectOneRadio</name>
+ <tag-class>org.apache.myfaces.taglib.html.HtmlSelectOneRadioTag</tag-class>
+ <body-content>JSP</body-content>
+ <description>
+ Allow the user to choose one option from a set of options.
+ <p>
+ Renders as an HTML table element, containing an input element for
+ each child f:selectItem or f:selectItems elements. The input
+ elements are rendered as type radio.
+ <p>
+ The value attribute of this component is read to determine
+ which of the available options is initially selected; its value should
+ match the "value" property of one of the child SelectItem objects.
+ <p>
+ On submit of the enclosing form, the value attribute's bound property
+ is updated to contain the "value" property from the chosen SelectItem.
+ <p>
+ Unless otherwise specified, all attributes accept static values
+ or EL expressions.
+
+ </description>
+ <!-- all standard attributes of the selectOneRadio tag -->
+ <!-- UISelectOne attributes -->
+ <!-- UIInput attributes -->
+ <!-- UIOutput attributes -->
+ <!-- UIComponent attributes -->
+ <attribute>
+ <name>id</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ The developer-assigned ID of this component. The ID must be unique
+ within the scope of the tag's enclosing naming container (e.g.
+ h:form or f:subview). This value must be a static value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>binding</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Identifies a backing bean property (of type UIComponent or appropriate
+ subclass) to bind to this component instance. This value must be an
+ EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether this component should be rendered.
+ Default value: true.
+ </description>
+ </attribute>
+ <attribute>
+ <name>value</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>The initial value of this component.</description>
+ </attribute>
+ <attribute>
+ <name>converter</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ An expression that specifies the Converter for this component.
+ If the value binding expression is a String, the String is used
+ as an ID to look up a Converter. If the value binding expression
+ is a Converter, uses that instance as the converter.
+
+ The value can either be a static value (ID case only) or an EL expression.
+ </description>
+ </attribute>
+ <attribute>
+ <name>immediate</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that identifies the phase during which value change
+ events should fire. During normal event processing, value change
+ events are fired during the "invoke application" phase of request
+ processing. If this attribute is set to "true", these methods are
+ fired instead at the end of the "apply request values" phase.
+ </description>
+ </attribute>
+ <attribute>
+ <name>required</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A boolean value that indicates whether an input value is required.
+ If this value is true, and no input value is provided, the error
+ message javax.faces.component.UIInput.REQUIRED is posted.
+ </description>
+ </attribute>
+ <attribute>
+ <name>validator</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting FacesContext, UIComponent,
+ and Object parameters, and returning void, that validates the
+ component's local value.
+ </description>
+ </attribute>
+ <attribute>
+ <name>valueChangeListener</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ A method binding EL expression, accepting a ValueChangeEvent parameter
+ and returning void. The specified method is invoked if this component
+ is modified. The phase that this handler is fired in can be controlled
+ via the immediate attribute.
+ </description>
+ </attribute>
+ <!-- HTML 4.0 universal attributes -->
+ <attribute>
+ <name>dir</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).</description>
+ </attribute>
+ <attribute>
+ <name>lang</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: The base language of this document.</description>
+ </attribute>
+ <attribute>
+ <name>style</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: CSS styling instructions.</description>
+ </attribute>
+ <attribute>
+ <name>title</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: An advisory title for this element. Often used by the user agent as a tooltip.</description>
+ </attribute>
+ <attribute>
+ <name>styleClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>The CSS class for this element. Corresponds to the HTML 'class' attribute.</description>
+ </attribute>
+ <!-- HTML 4.0 event-handler attributes -->
+ <attribute>
+ <name>onclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is clicked.</description>
+ </attribute>
+ <attribute>
+ <name>ondblclick</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the element is double-clicked.</description>
+ </attribute>
+ <attribute>
+ <name>onmousedown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is released over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseover</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved into this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmousemove</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moved while it is in this element.</description>
+ </attribute>
+ <attribute>
+ <name>onmouseout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when the pointing device is moves out of this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeypress</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeydown</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is pressed down over this element.</description>
+ </attribute>
+ <attribute>
+ <name>onkeyup</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>HTML: Script to be invoked when a key is released over this element.</description>
+ </attribute>
+ <!-- HTML 4.0 input attributes for type "radio" -->
+ <attribute>
+ <name>accesskey</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Sets the access key for this element.</description>
+ </attribute>
+ <attribute>
+ <name>alt</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies alternative text that can be used by a browser that can't show this element.</description>
+ </attribute>
+ <attribute>
+ <name>disabled</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: When true, this element cannot receive focus.</description>
+ </attribute>
+ <attribute>
+ <name>onblur</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element loses focus.</description>
+ </attribute>
+ <attribute>
+ <name>onfocus</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element receives focus.</description>
+ </attribute>
+ <attribute>
+ <name>onchange</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is modified.</description>
+ </attribute>
+ <attribute>
+ <name>onselect</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies a script to be invoked when the element is selected.</description>
+ </attribute>
+ <attribute>
+ <name>readonly</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ HTML: When true, indicates that this component cannot be modified by the user.
+ The element may receive focus unless it has also been disabled.
+ </description>
+ </attribute>
+ <attribute>
+ <name>tabindex</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>HTML: Specifies the position of this element within the tab order of the document.</description>
+ </attribute>
+ <attribute>
+ <name>datafld</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>datasrc</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <attribute>
+ <name>dataformatas</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <description>Reserved for future use.</description>
+ </attribute>
+ <!-- RadioRenderer attributes -->
+ <attribute>
+ <name>layout</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>
+ Orientation of the options list. Valid values are
+ "pageDirection" for a vertical layout, or "lineDirection" for
+ horizontal. The default value is "lineDirection".
+ </description>
+ </attribute>
+ <attribute>
+ <name>border</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ <type>java.lang.String</type>
+ <description>Width in pixels of the border to be drawn around the table containing the options list.</description>
+ </attribute>
+ <attribute>
+ <name>enabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ <attribute>
+ <name>disabledClass</name>
+ <required>false</required>
+ <rtexprvalue>false</rtexprvalue>
+ </attribute>
+ </tag>
+</taglib>
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/.settings/org.eclipse.jdt.core.prefs b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/.settings/org.eclipse.jdt.core.prefs
index 7254127..daddec6 100644
--- a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,61 @@
-#Tue Apr 10 09:03:49 PDT 2007
+#Fri Jul 13 13:50:02 PDT 2007
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/META-INF/MANIFEST.MF b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/META-INF/MANIFEST.MF
index 41321a5..17c49d6 100644
--- a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/META-INF/MANIFEST.MF
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/META-INF/MANIFEST.MF
@@ -16,7 +16,12 @@
org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.2.0,2.4.0)",
org.eclipse.core.commands;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.0,4.0.0)"
+ org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.jst.jsf.facesconfig,
+ org.eclipse.wst.common.modulecore,
+ org.eclipse.wst.sse.core,
+ org.eclipse.jface.text,
+ org.eclipse.ui.editors
Eclipse-LazyStart: true
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Export-Package: org.eclipse.jst.jsf.designtime.tests;x-internal:=true
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/AllTests.java b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/AllTests.java
index 0e6b755..bac75b7 100644
--- a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/AllTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/AllTests.java
@@ -33,6 +33,10 @@
suite.addTestSuite(TestResourceBundleMapSource.class);
suite.addTestSuite(TestDefaultPropertyResolver.class);
suite.addTestSuite(TestAbstractDataModelVariableFactory.class);
+ suite.addTestSuite(TestDefaultDTMethodResolver.class);
+ suite.addTestSuite(TestDefaultDTVariableResolver.class);
+ suite.addTestSuite(TestDTJSPExternalContext.class);
+ suite.addTestSuite(TestJSPDefaultSymbolFactory.class);
//$JUnit-END$
return suite;
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDTJSPExternalContext.java b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDTJSPExternalContext.java
new file mode 100644
index 0000000..ff3e256
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDTJSPExternalContext.java
@@ -0,0 +1,197 @@
+package org.eclipse.jst.jsf.designtime.tests;
+
+import java.io.ByteArrayInputStream;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jst.jsf.context.symbol.IInstanceSymbol;
+import org.eclipse.jst.jsf.context.symbol.ISymbol;
+import org.eclipse.jst.jsf.context.symbol.SymbolFactory;
+import org.eclipse.jst.jsf.context.symbol.source.ISymbolConstants;
+import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
+import org.eclipse.jst.jsf.designtime.DesignTimeApplicationManager;
+import org.eclipse.jst.jsf.designtime.context.DTJSPExternalContext;
+import org.eclipse.jst.jsf.designtime.context.IDTExternalContext;
+import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
+import org.eclipse.jst.jsf.test.util.JSFTestUtil;
+import org.eclipse.jst.jsf.test.util.TestFileResource;
+import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
+
+import junit.framework.TestCase;
+
+public class TestDTJSPExternalContext extends TestCase
+{
+ private IFile _testJSP1;
+ private JSFFacetedTestEnvironment _jsfFactedTestEnvironment;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ JSFTestUtil.setValidationEnabled(false);
+ JSFTestUtil.setInternetProxyPreferences(true, "www-proxy.us.oracle.com","80");
+
+ final WebProjectTestEnvironment projectTestEnvironment =
+ new WebProjectTestEnvironment("TestDTJSPExternalContext"+getName());
+ projectTestEnvironment.createProject(false);
+
+ JDTTestEnvironment jdtTestEnvironment =
+ new JDTTestEnvironment(projectTestEnvironment);
+
+ final TestFileResource input = new TestFileResource();
+ input.load(DesignTimeTestsPlugin.getDefault().getBundle(),
+ "/testdata/bundle1.resources.data");
+ jdtTestEnvironment.addResourceFile("src"
+ , new ByteArrayInputStream(input.toBytes())
+ , "bundles", "bundle1.properties");
+
+ IResource res = projectTestEnvironment.loadResourceInWebRoot(DesignTimeTestsPlugin.getDefault().getBundle()
+ , "/testdata/testdata1.jsp.data", "testdata1.jsp");
+ _testJSP1 = (IFile) res;
+
+ _jsfFactedTestEnvironment = new JSFFacetedTestEnvironment(projectTestEnvironment);
+ _jsfFactedTestEnvironment.initialize(IJSFCoreConstants.FACET_VERSION_1_1);
+ }
+
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ }
+
+ public void testDefaultDoGetMapForScopeInt()
+ {
+ final DesignTimeApplicationManager manager =
+ DesignTimeApplicationManager.getInstance(_testJSP1.getProject());
+
+ {
+ final IDTExternalContext externalContext =
+ manager.getFacesContext(_testJSP1).getDTExternalContext(_testJSP1);
+
+ Map<String, ISymbol> requestMap = externalContext.getRequestMap();
+ Collection<ISymbol> symbols = requestMap.values();
+ // there is a bundle defined in the test JSP
+ // also a data table row variable
+ assertEquals(2, symbols.size());
+ assertContainsVariable(symbols,"bundle");
+ assertContainsVariable(symbols,"row");
+ }
+
+ {
+ final TestableDTJSPExternalContext externalContext =
+ new TestableDTJSPExternalContext(_testJSP1);
+
+ Map<String, ISymbol> requestMap = externalContext.getRequestMap();
+ Collection<ISymbol> symbols = requestMap.values();
+ assertEquals(1, symbols.size());
+ assertContainsVariable(symbols,"requestSymbol");
+
+ Map<String, ISymbol> sessionMap = externalContext.getSessionMap();
+ symbols = sessionMap.values();
+ assertEquals(1, symbols.size());
+ assertContainsVariable(symbols,"sessionSymbol");
+
+ Map<String, ISymbol> applicationMap = externalContext.getApplicationMap();
+ symbols = applicationMap.values();
+ assertEquals(1, symbols.size());
+ assertContainsVariable(symbols,"applicationSymbol");
+
+ Map<String, ISymbol> noneMap = externalContext.getNoneMap();
+ symbols = noneMap.values();
+ assertEquals(1, symbols.size());
+ assertContainsVariable(symbols,"noneSymbol");
+
+ externalContext.trace(System.out);
+ }
+ }
+
+
+ private void assertContainsVariable(Collection<ISymbol> variables, String name)
+ {
+ for (ISymbol variable : variables)
+ {
+ if (name.equals(variable.getName()))
+ {
+ assertTrue(variable instanceof IInstanceSymbol);
+ return;
+ }
+ }
+
+ fail("Expected variable not found: "+name);
+ }
+
+ private class TestableDTJSPExternalContext extends DTJSPExternalContext
+ {
+ protected TestableDTJSPExternalContext(IAdaptable jspFile)
+ {
+ super(jspFile);
+ }
+
+ @Override
+ protected Map<String, ISymbol> doGetMapForScope(int scopeMask)
+ {
+ switch(scopeMask)
+ {
+ case ISymbolConstants.SYMBOL_SCOPE_REQUEST:
+ return initRequestMap();
+
+ case ISymbolConstants.SYMBOL_SCOPE_SESSION:
+ return initSessionMap();
+
+ case ISymbolConstants.SYMBOL_SCOPE_APPLICATION:
+ return initApplicationMap();
+
+ case ISymbolConstants.SYMBOL_SCOPE_NONE:
+ return initNoneMap();
+ }
+
+ throw new IllegalArgumentException();
+ }
+
+ private Map<String, ISymbol> initRequestMap()
+ {
+ final Map<String, ISymbol> map = new HashMap<String, ISymbol>();
+ ISymbol symbol = SymbolFactory.eINSTANCE.createIComponentSymbol();
+ symbol.setName("requestSymbol");
+ map.put("requestSymbol", symbol);
+
+ return map;
+ }
+
+ private Map<String, ISymbol> initSessionMap()
+ {
+ final Map<String, ISymbol> map = new HashMap<String, ISymbol>();
+
+ ISymbol symbol = SymbolFactory.eINSTANCE.createIComponentSymbol();
+ symbol.setName("sessionSymbol");
+ map.put("sessionSymbol", symbol);
+
+ return map;
+ }
+
+ private Map<String, ISymbol> initApplicationMap()
+ {
+ final Map<String, ISymbol> map = new HashMap<String, ISymbol>();
+
+ ISymbol symbol = SymbolFactory.eINSTANCE.createIComponentSymbol();
+ symbol.setName("applicationSymbol");
+ map.put("applicationSymbol", symbol);
+
+ return map;
+ }
+
+ private Map<String, ISymbol> initNoneMap()
+ {
+ final Map<String, ISymbol> map = new HashMap<String, ISymbol>();
+
+ ISymbol symbol = SymbolFactory.eINSTANCE.createIComponentSymbol();
+ symbol.setName("noneSymbol");
+ map.put("noneSymbol", symbol);
+
+ return map;
+ }
+ }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDefaultDTMethodResolver.java b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDefaultDTMethodResolver.java
new file mode 100644
index 0000000..56a29de
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDefaultDTMethodResolver.java
@@ -0,0 +1,123 @@
+package org.eclipse.jst.jsf.designtime.tests;
+
+import junit.framework.TestCase;
+
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jst.jsf.context.symbol.IBeanInstanceSymbol;
+import org.eclipse.jst.jsf.context.symbol.IJavaTypeDescriptor2;
+import org.eclipse.jst.jsf.context.symbol.IMethodSymbol;
+import org.eclipse.jst.jsf.context.symbol.ISymbol;
+import org.eclipse.jst.jsf.context.symbol.SymbolFactory;
+import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
+import org.eclipse.jst.jsf.designtime.el.DefaultDTMethodResolver;
+import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
+import org.eclipse.jst.jsf.test.util.JSFTestUtil;
+import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
+
+public class TestDefaultDTMethodResolver extends TestCase
+{
+ private JDTTestEnvironment _jdtTestEnvironment;
+ private JSFFacetedTestEnvironment _jsfFactedTestEnvironment;
+
+ private IType _methodBeanType;
+
+ private final static String SRC_FOLDER_NAME = "src";
+ private final static String PACKAGE_NAME = "com.test";
+ private final static String TESTBEAN1_NAME = "MethodBean";
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ JSFTestUtil.setValidationEnabled(false);
+ JSFTestUtil.setInternetProxyPreferences(true, "www-proxy.us.oracle.com","80");
+
+ final WebProjectTestEnvironment projectTestEnvironment =
+ new WebProjectTestEnvironment("TestDefaultMethodResolver"+getName());
+ projectTestEnvironment.createProject(false);
+
+ _jsfFactedTestEnvironment = new JSFFacetedTestEnvironment(projectTestEnvironment);
+ _jsfFactedTestEnvironment.initialize(IJSFCoreConstants.FACET_VERSION_1_1);
+
+ _jdtTestEnvironment = new JDTTestEnvironment(projectTestEnvironment);
+
+ JSFTestUtil.loadSourceClass(
+ DesignTimeTestsPlugin.getDefault().getBundle(),
+ "/testdata/MethodBean.java.data", TESTBEAN1_NAME, SRC_FOLDER_NAME, PACKAGE_NAME, _jdtTestEnvironment);
+ _methodBeanType =
+ _jdtTestEnvironment.getJavaProject().findType(PACKAGE_NAME+"."+TESTBEAN1_NAME);
+ assertNotNull(_methodBeanType);
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+
+ _jdtTestEnvironment.getJavaProject().getProject().delete(true, null);
+ }
+
+ public void testGetMethod()
+ {
+ final IBeanInstanceSymbol symbol = SymbolFactory.eINSTANCE.createIBeanInstanceSymbol();
+ symbol.setName("myBean2");
+ final IJavaTypeDescriptor2 typeDesc = SymbolFactory.eINSTANCE.createIJavaTypeDescriptor2();
+ typeDesc.setType(_methodBeanType);
+ symbol.setTypeDescriptor(typeDesc);
+
+ DefaultDTMethodResolver methodResolver = new DefaultDTMethodResolver();
+
+ IMethodSymbol methodSymbol = methodResolver.getMethod(symbol, "actionMethod");
+ assertNotNull(methodSymbol);
+ assertEquals("actionMethod", methodSymbol.getName());
+ assertEquals("()Ljava.lang.String;", methodSymbol.getSignature());
+
+ methodSymbol = methodResolver.getMethod(symbol, "actionMethodWithParam");
+ assertNotNull(methodSymbol);
+ assertEquals("actionMethodWithParam", methodSymbol.getName());
+ assertEquals("(Ljava.lang.String;)Ljava.lang.String;", methodSymbol.getSignature());
+
+ // method not found
+ methodSymbol = methodResolver.getMethod(symbol, "notAMethod");
+ assertNull(methodSymbol);
+ }
+
+ public void testGetMethods()
+ {
+ final IBeanInstanceSymbol symbol = SymbolFactory.eINSTANCE.createIBeanInstanceSymbol();
+ symbol.setName("myBean2");
+ final IJavaTypeDescriptor2 typeDesc = SymbolFactory.eINSTANCE.createIJavaTypeDescriptor2();
+ typeDesc.setType(_methodBeanType);
+ symbol.setTypeDescriptor(typeDesc);
+
+ DefaultDTMethodResolver methodResolver = new DefaultDTMethodResolver();
+
+ ISymbol[] symbols = methodResolver.getMethods(symbol);
+ assertNotNull(symbols);
+ assertEquals(11, symbols.length);
+ assertContains(symbols, "actionMethod", "()Ljava.lang.String;");
+ assertContains(symbols, "actionMethodWithParam", "(Ljava.lang.String;)Ljava.lang.String;");
+ }
+
+ private void assertContains(ISymbol[] methods, String name, String signature)
+ {
+ IMethodSymbol methodSymbol = null;
+
+ for (int i = 0; i < methods.length; i++)
+ {
+ ISymbol symbol = methods[i];
+
+ if (name.equals(symbol.getName()))
+ {
+ assertTrue(symbol instanceof IMethodSymbol);
+ if (((IMethodSymbol)symbol).getSignature().equals(signature))
+ {
+ methodSymbol = (IMethodSymbol) symbol;
+ }
+ }
+ }
+
+ assertNotNull(methodSymbol);
+ }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDefaultDTVariableResolver.java b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDefaultDTVariableResolver.java
new file mode 100644
index 0000000..7bdf4f6
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDefaultDTVariableResolver.java
@@ -0,0 +1,214 @@
+package org.eclipse.jst.jsf.designtime.tests;
+
+import java.io.ByteArrayInputStream;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jst.jsf.context.symbol.IBeanInstanceSymbol;
+import org.eclipse.jst.jsf.context.symbol.IComponentSymbol;
+import org.eclipse.jst.jsf.context.symbol.IInstanceSymbol;
+import org.eclipse.jst.jsf.context.symbol.IJavaTypeDescriptor2;
+import org.eclipse.jst.jsf.context.symbol.IMapTypeDescriptor;
+import org.eclipse.jst.jsf.context.symbol.ISymbol;
+import org.eclipse.jst.jsf.context.symbol.ITypeDescriptor;
+import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
+import org.eclipse.jst.jsf.designtime.DesignTimeApplicationManager;
+import org.eclipse.jst.jsf.designtime.el.DefaultDTVariableResolver;
+import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigFactory;
+import org.eclipse.jst.jsf.facesconfig.emf.FacesConfigType;
+import org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanClassType;
+import org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanNameType;
+import org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanScopeType;
+import org.eclipse.jst.jsf.facesconfig.emf.ManagedBeanType;
+import org.eclipse.jst.jsf.facesconfig.util.FacesConfigArtifactEdit;
+import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
+import org.eclipse.jst.jsf.test.util.JSFTestUtil;
+import org.eclipse.jst.jsf.test.util.TestFileResource;
+import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
+
+public class TestDefaultDTVariableResolver extends TestCase
+{
+ private IType _testBean1Type;
+ private JSFFacetedTestEnvironment _jsfFactedTestEnvironment;
+ private JDTTestEnvironment _jdtTestEnvironment;
+ private IFile _testJSP1;
+
+ private final static String SRC_FOLDER_NAME = "src";
+ private final static String PACKAGE_NAME = "com.test";
+ private final static String TESTBEAN1_NAME = "TestBean1";
+
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ JSFTestUtil.setValidationEnabled(false);
+ JSFTestUtil.setInternetProxyPreferences(true, "www-proxy.us.oracle.com","80");
+
+ final WebProjectTestEnvironment projectTestEnvironment =
+ new WebProjectTestEnvironment("TestDefaultPropertyResolver"+getName());
+ projectTestEnvironment.createProject(false);
+
+ IResource res = projectTestEnvironment.loadResourceInWebRoot(DesignTimeTestsPlugin.getDefault().getBundle()
+ , "/testdata/testdata1.jsp.data", "testdata1.jsp");
+ _testJSP1 = (IFile) res;
+
+ _jsfFactedTestEnvironment = new JSFFacetedTestEnvironment(projectTestEnvironment);
+ _jsfFactedTestEnvironment.initialize(IJSFCoreConstants.FACET_VERSION_1_1);
+
+ final IProject project = projectTestEnvironment.getTestProject();
+
+ FacesConfigArtifactEdit edit = null;
+
+ try
+ {
+ edit = FacesConfigArtifactEdit.getFacesConfigArtifactEditForWrite(project, null);
+
+ FacesConfigType model = edit.getFacesConfig();
+ ManagedBeanClassType beanClass = FacesConfigFactory.eINSTANCE.createManagedBeanClassType();
+ beanClass.setTextContent("com.test.TestBean1");
+
+ ManagedBeanNameType beanName = FacesConfigFactory.eINSTANCE.createManagedBeanNameType();
+ beanName.setTextContent("testBean1");
+
+ ManagedBeanScopeType beanScope = FacesConfigFactory.eINSTANCE.createManagedBeanScopeType();
+ beanScope.setTextContent("session");
+
+ ManagedBeanType bean = FacesConfigFactory.eINSTANCE.createManagedBeanType();
+ bean.setManagedBeanClass(beanClass);
+ bean.setManagedBeanName(beanName);
+ bean.setManagedBeanScope(beanScope);
+
+ model.getManagedBean().add(bean);
+
+ edit.save(null);
+ }
+ finally
+ {
+ if (edit != null)
+ {
+ edit.dispose();
+ }
+ }
+
+ _jdtTestEnvironment = new JDTTestEnvironment(projectTestEnvironment);
+
+ final TestFileResource input = new TestFileResource();
+ input.load(DesignTimeTestsPlugin.getDefault().getBundle(),
+ "/testdata/bundle1.resources.data");
+ _jdtTestEnvironment.addResourceFile("src"
+ , new ByteArrayInputStream(input.toBytes())
+ , "bundles", "bundle1.properties");
+
+ JSFTestUtil.loadSourceClass(
+ DesignTimeTestsPlugin.getDefault().getBundle(),
+ "/testdata/TestBean1.java.data", TESTBEAN1_NAME, SRC_FOLDER_NAME, PACKAGE_NAME, _jdtTestEnvironment);
+ _testBean1Type = _jdtTestEnvironment.getJavaProject().findType(PACKAGE_NAME+"."+TESTBEAN1_NAME);
+ assertNotNull(_testBean1Type);
+ }
+
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ }
+
+ public void testResolveVariable()
+ {
+ checkBuiltinVariables();
+ checkSymbolMaps();
+ checkManagedBeanVariable();
+ }
+
+ private void checkBuiltinVariables()
+ {
+ final DesignTimeApplicationManager manager =
+ DesignTimeApplicationManager.getInstance
+ (_jdtTestEnvironment.getProjectEnvironment().getTestProject());
+
+ DefaultDTVariableResolver variableResolver = new DefaultDTVariableResolver();
+ ISymbol symbol = variableResolver.resolveVariable
+ (manager.getFacesContext(_testJSP1), "applicationScope", _testJSP1);
+ assertNotNull(symbol);
+ }
+
+ private void checkSymbolMaps()
+ {
+ final DesignTimeApplicationManager manager =
+ DesignTimeApplicationManager.getInstance
+ (_jdtTestEnvironment.getProjectEnvironment().getTestProject());
+
+ DefaultDTVariableResolver variableResolver = new DefaultDTVariableResolver();
+ ISymbol symbol = variableResolver.resolveVariable
+ (manager.getFacesContext(_testJSP1), "bundle", _testJSP1);
+ assertNotNull(symbol);
+ assertTrue(symbol instanceof IComponentSymbol);
+
+ IComponentSymbol compSymbol = (IComponentSymbol) symbol;
+ assertEquals("bundle", compSymbol.getName());
+ ITypeDescriptor typeDesc = compSymbol.getTypeDescriptor();
+ assertTrue(typeDesc instanceof IMapTypeDescriptor);
+ }
+
+ private void checkManagedBeanVariable()
+ {
+ final DesignTimeApplicationManager manager =
+ DesignTimeApplicationManager.getInstance
+ (_jdtTestEnvironment.getProjectEnvironment().getTestProject());
+
+ DefaultDTVariableResolver variableResolver = new DefaultDTVariableResolver();
+ ISymbol symbol = variableResolver.resolveVariable
+ (manager.getFacesContext(_testJSP1), "testBean1", _testJSP1);
+ assertNotNull(symbol);
+ assertTrue(symbol instanceof IBeanInstanceSymbol);
+
+ IBeanInstanceSymbol compSymbol = (IBeanInstanceSymbol) symbol;
+ assertEquals("testBean1", compSymbol.getName());
+ ITypeDescriptor typeDesc = compSymbol.getTypeDescriptor();
+ assertTrue(typeDesc instanceof IJavaTypeDescriptor2);
+ assertEquals("Lcom.test.TestBean1;", typeDesc.getTypeSignature());
+ }
+
+ public void testGetAllVariables()
+ {
+ final DesignTimeApplicationManager manager =
+ DesignTimeApplicationManager.getInstance
+ (_jdtTestEnvironment.getProjectEnvironment().getTestProject());
+
+ DefaultDTVariableResolver variableResolver = new DefaultDTVariableResolver();
+
+ ISymbol[] variables = variableResolver.getAllVariables
+ (manager.getFacesContext(_testJSP1), _testJSP1);
+
+ assertContainsVariable(variables, "applicationScope");
+ assertContainsVariable(variables, "sessionScope");
+ assertContainsVariable(variables, "requestScope");
+ assertContainsVariable(variables, "cookie");
+ assertContainsVariable(variables, "facesContext");
+ assertContainsVariable(variables, "header");
+ assertContainsVariable(variables, "headerValues");
+ assertContainsVariable(variables, "initParam");
+ assertContainsVariable(variables, "param");
+ assertContainsVariable(variables, "paramValues");
+ assertContainsVariable(variables, "view");
+ assertContainsVariable(variables, "testBean1");
+ assertContainsVariable(variables, "bundle");
+ }
+
+ private void assertContainsVariable(ISymbol[] variables, String name)
+ {
+ for (ISymbol variable : variables)
+ {
+ if (name.equals(variable.getName()))
+ {
+ assertTrue(variable instanceof IInstanceSymbol);
+ return;
+ }
+ }
+
+ fail("Expected variable not found: "+name);
+ }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDefaultPropertyResolver.java b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDefaultPropertyResolver.java
index beaec75..4a6745a 100644
--- a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDefaultPropertyResolver.java
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDefaultPropertyResolver.java
@@ -11,6 +11,7 @@
********************************************************************************/
package org.eclipse.jst.jsf.designtime.tests;
+import java.io.ByteArrayInputStream;
import java.util.HashMap;
import java.util.Map;
@@ -20,7 +21,9 @@
import org.eclipse.jdt.core.Signature;
import org.eclipse.jst.jsf.common.internal.types.TypeConstants;
import org.eclipse.jst.jsf.common.util.JDTBeanIntrospector;
+import org.eclipse.jst.jsf.common.util.JDTBeanProperty;
import org.eclipse.jst.jsf.context.symbol.IBeanInstanceSymbol;
+import org.eclipse.jst.jsf.context.symbol.IBoundedMapTypeDescriptor;
import org.eclipse.jst.jsf.context.symbol.IComponentSymbol;
import org.eclipse.jst.jsf.context.symbol.IJavaTypeDescriptor2;
import org.eclipse.jst.jsf.context.symbol.IMapTypeDescriptor;
@@ -31,8 +34,10 @@
import org.eclipse.jst.jsf.core.IJSFCoreConstants;
import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
import org.eclipse.jst.jsf.designtime.el.DefaultDTPropertyResolver;
+import org.eclipse.jst.jsf.designtime.internal.symbols.ResourceBundleMapSourceFactory;
import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
import org.eclipse.jst.jsf.test.util.JSFTestUtil;
+import org.eclipse.jst.jsf.test.util.TestFileResource;
import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
/**
@@ -75,16 +80,19 @@
final WebProjectTestEnvironment projectTestEnvironment =
new WebProjectTestEnvironment("TestDefaultPropertyResolver"+getName());
projectTestEnvironment.createProject(false);
-// _facesConfigFile = (IFile) projectTestEnvironment.
-// loadResourceInWebRoot(DesignTimeTestsPlugin.getDefault().getBundle(),
-// "/testdata/faces-config.xml.data",
-// "/WEB-INF/faces-config.xml");
_jsfFactedTestEnvironment = new JSFFacetedTestEnvironment(projectTestEnvironment);
_jsfFactedTestEnvironment.initialize(IJSFCoreConstants.FACET_VERSION_1_1);
_jdtTestEnvironment = new JDTTestEnvironment(projectTestEnvironment);
+ final TestFileResource input = new TestFileResource();
+ input.load(DesignTimeTestsPlugin.getDefault().getBundle(),
+ "/testdata/bundle1.resources.data");
+ _jdtTestEnvironment.addResourceFile(SRC_FOLDER_NAME
+ , new ByteArrayInputStream(input.toBytes())
+ , "bundles", "bundle1.properties");
+
JSFTestUtil.loadSourceClass(
DesignTimeTestsPlugin.getDefault().getBundle(),
"/testdata/TestBean1.java.data", TESTBEAN1_NAME, SRC_FOLDER_NAME, PACKAGE_NAME, _jdtTestEnvironment);
@@ -158,7 +166,7 @@
public void testSanity()
{
JDTBeanIntrospector beanIntrospector = new JDTBeanIntrospector(_testBean1Type);
- Map props = beanIntrospector.getProperties();
+ Map<String, JDTBeanProperty> props = beanIntrospector.getProperties();
assertEquals(NUM_PROPERTIES_TEST_BEAN_1, props.size());
assertTrue(props.containsKey("stringProp1"));
assertTrue(props.containsKey("booleanIsProp1"));
@@ -211,10 +219,10 @@
DefaultDTPropertyResolver propResolver = new DefaultDTPropertyResolver();
ISymbol[] properties = propResolver.getAllProperties(symbol);
assertEquals(NUM_PROPERTIES_TEST_BEAN_1, properties.length);
- Map checkProps = new HashMap();
- for (int i = 0; i < properties.length; i++)
+ Map<String, ISymbol> checkProps = new HashMap<String, ISymbol>();
+ for (ISymbol propSymbol : properties)
{
- checkProps.put(properties[i].getName(), properties[i]);
+ checkProps.put(propSymbol.getName(), propSymbol);
}
assertTrue(checkProps.containsKey("stringProp1"));
@@ -251,7 +259,7 @@
IJavaTypeDescriptor2 typeDesc = SymbolFactory.eINSTANCE.createIJavaTypeDescriptor2();
typeDesc.setType(_testMapBean1Type);
symbol.setTypeDescriptor(typeDesc);
-
+
DefaultDTPropertyResolver propResolver = new DefaultDTPropertyResolver();
ISymbol[] properties = propResolver.getAllProperties(symbol);
// there no design-time identifiable properties
@@ -273,7 +281,7 @@
assertEquals(TypeConstants.TYPE_JAVAOBJECT, ((IPropertySymbol)someProperty1).getTypeDescriptor().getTypeSignature());
}
}
-
+
/**
* Test a component with map source
*/
@@ -282,7 +290,7 @@
final IComponentSymbol symbol = SymbolFactory.eINSTANCE.createIComponentSymbol();
symbol.setName("myComponentSymbol");
final IMapTypeDescriptor typeDesc = SymbolFactory.eINSTANCE.createIMapTypeDescriptor();
- final Map mapSource = new HashMap();
+ final Map<String, String> mapSource = new HashMap<String, String>();
mapSource.put("prop1", "propValue1");
mapSource.put("prop2", "propValue2");
mapSource.put("dotted.property", "dottedPropertyValue");
@@ -352,7 +360,7 @@
assertEquals(2, properties.length); // should have defined property plus class
// check props
- final Map gotProps = new HashMap();
+ final Map<String, IPropertySymbol> gotProps = new HashMap<String, IPropertySymbol>();
for (int i = 0; i < properties.length; i++)
{
@@ -584,6 +592,9 @@
IPropertySymbol unboundedProp = (IPropertySymbol) propResolver.getProperty(listProp, 0);
assertEquals(TypeConstants.TYPE_JAVAOBJECT, unboundedProp.getTypeDescriptor().getTypeSignature());
+
+ // list base symbols do not have non-numeric keys
+ assertNull(propResolver.getProperty(listProp, "anyKey"));
}
public void testGenericListProperty()
@@ -615,6 +626,80 @@
assertEquals(TypeConstants.TYPE_STRING, unboundedProp.getTypeDescriptor().getTypeSignature());
}
+ public void testBoundedTypeDescriptor()
+ {
+ final IComponentSymbol symbol =
+ SymbolFactory.eINSTANCE.createIComponentSymbol();
+ symbol.setName("componentSymbol");
+ final IBoundedMapTypeDescriptor typeDesc =
+ SymbolFactory.eINSTANCE.createIBoundedMapTypeDescriptor();
+ typeDesc.setMapSource(new HashMap<String, String>());
+ symbol.setTypeDescriptor(typeDesc);
+
+ DefaultDTPropertyResolver propResolver = new DefaultDTPropertyResolver();
+ ISymbol propSymbol = propResolver.getProperty(symbol, "anyProp");
+
+ assertNotNull(propSymbol);
+ assertTrue(propSymbol instanceof IPropertySymbol);
+ assertEquals(TypeConstants.TYPE_JAVAOBJECT,
+ ((IPropertySymbol)propSymbol).getTypeDescriptor().getTypeSignature());
+ }
+
+ public void testDottedPropertyNames() throws Exception
+ {
+ checkDottedBundleNames();
+ // TODO: should add coverage for dotted, non-bundles...
+ }
+
+ private void checkDottedBundleNames() throws Exception
+ {
+ Map map =
+ ResourceBundleMapSourceFactory.getResourceBundleMapSource
+ (_jdtTestEnvironment.getProjectEnvironment().getTestProject()
+ , "bundles.bundle1");
+ assertNotNull(map);
+ assertEquals(3, map.size());
+
+ final IMapTypeDescriptor typeDesc =
+ SymbolFactory.eINSTANCE.createIMapTypeDescriptor();
+ typeDesc.setMapSource(map);
+ final IComponentSymbol symbol =
+ SymbolFactory.eINSTANCE.createIComponentSymbol();
+ symbol.setName("dottedMapSource");
+ symbol.setTypeDescriptor(typeDesc);
+
+ DefaultDTPropertyResolver propResolver = new DefaultDTPropertyResolver();
+ {
+ ISymbol oneDot = propResolver.getProperty(symbol, "one");
+ assertNotNull(oneDot);
+ assertTrue(oneDot instanceof IPropertySymbol);
+ assertTrue(((IPropertySymbol)oneDot).isIntermediate());
+
+ oneDot = propResolver.getProperty(symbol, "one.dot");
+ assertNotNull(oneDot);
+ assertTrue(oneDot instanceof IPropertySymbol);
+ assertFalse(((IPropertySymbol)oneDot).isIntermediate());
+ }
+
+ {
+ ISymbol twoDots = propResolver.getProperty(symbol, "two");
+ assertNotNull(twoDots);
+ assertTrue(twoDots instanceof IPropertySymbol);
+ assertTrue(((IPropertySymbol)twoDots).isIntermediate());
+
+ twoDots = propResolver.getProperty(symbol, "two.dot");
+ assertNotNull(twoDots);
+ assertTrue(twoDots instanceof IPropertySymbol);
+ assertTrue(((IPropertySymbol)twoDots).isIntermediate());
+
+ twoDots = propResolver.getProperty(symbol, "two.dot.property");
+ assertNotNull(twoDots);
+ assertTrue(twoDots instanceof IPropertySymbol);
+ assertFalse(((IPropertySymbol)twoDots).isIntermediate());
+
+ }
+ }
+
private ISymbol findSymbol(final String name, ISymbol[] symbols)
{
for (ISymbol symbol : symbols)
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDesignTimeApplicationManager.java b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDesignTimeApplicationManager.java
new file mode 100644
index 0000000..87866f7
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestDesignTimeApplicationManager.java
@@ -0,0 +1,117 @@
+package org.eclipse.jst.jsf.designtime.tests;
+
+import java.io.ByteArrayInputStream;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
+import org.eclipse.jst.jsf.designtime.DesignTimeApplicationManager;
+import org.eclipse.jst.jsf.designtime.context.DTFacesContext;
+import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
+import org.eclipse.jst.jsf.test.util.JSFTestUtil;
+import org.eclipse.jst.jsf.test.util.TestFileResource;
+import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
+
+public class TestDesignTimeApplicationManager extends TestCase
+{
+ private IFile _testJSP;
+ private JSFFacetedTestEnvironment _jsfFactedTestEnvironment;
+
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ JSFTestUtil.setValidationEnabled(false);
+ JSFTestUtil.setInternetProxyPreferences(true, "www-proxy.us.oracle.com","80");
+
+ final WebProjectTestEnvironment projectTestEnvironment =
+ new WebProjectTestEnvironment("TestDesignTimeApplicationManager"+getName());
+ projectTestEnvironment.createProject(false);
+
+ final JDTTestEnvironment jdtTestEnvironment =
+ new JDTTestEnvironment(projectTestEnvironment);
+
+ final TestFileResource input = new TestFileResource();
+ input.load(DesignTimeTestsPlugin.getDefault().getBundle(),
+ "/testdata/bundle1.resources.data");
+ jdtTestEnvironment.addResourceFile("src"
+ , new ByteArrayInputStream(input.toBytes())
+ , "bundles", "bundle1.properties");
+
+ final IResource res =
+ projectTestEnvironment.loadResourceInWebRoot(DesignTimeTestsPlugin.getDefault().getBundle()
+ , "/testdata/testdata1.jsp.data", "testdata1.jsp");
+ _testJSP = (IFile) res;
+
+ _jsfFactedTestEnvironment = new JSFFacetedTestEnvironment(projectTestEnvironment);
+ _jsfFactedTestEnvironment.initialize(IJSFCoreConstants.FACET_VERSION_1_1);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testGetInstance() {
+ //fail("Not yet implemented");
+ }
+
+ public void testGetFacesContext()
+ {
+ final DesignTimeApplicationManager manager =
+ DesignTimeApplicationManager.getInstance(_testJSP.getProject());
+
+ final DTFacesContext facesContext = manager.getFacesContext(_testJSP);
+ assertNotNull(facesContext);
+ }
+
+// public void testSetExternalContextProvider()
+// {
+// final DesignTimeApplicationManager manager =
+// DesignTimeApplicationManager.getInstance(_testJSP.getProject());
+//
+// manager.setExternalContextProvider(resolverPluginId);
+// }
+//
+// public void testGetExternalContextProvider() {
+// //fail("Not yet implemented");
+// }
+//
+// public void testGetVariableResolver() {
+// //fail("Not yet implemented");
+// }
+//
+// public void testSetVariableResolverProvider() {
+// //fail("Not yet implemented");
+// }
+//
+// public void testGetVariableResolverProvider() {
+// //fail("Not yet implemented");
+// }
+//
+// public void testGetPropertyResolver() {
+// //fail("Not yet implemented");
+// }
+//
+// public void testSetPropertyResolverProvider() {
+// //fail("Not yet implemented");
+// }
+//
+// public void testGetPropertyResolverProvider() {
+// //fail("Not yet implemented");
+// }
+//
+// public void testGetMethodResolver() {
+// //fail("Not yet implemented");
+// }
+//
+// public void testSetMethodResolverProvider() {
+// //fail("Not yet implemented");
+// }
+//
+// public void testGetMethodResolverProvider() {
+// //fail("Not yet implemented");
+// }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestJSPDefaultSymbolFactory.java b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestJSPDefaultSymbolFactory.java
new file mode 100644
index 0000000..ebe68cc
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestJSPDefaultSymbolFactory.java
@@ -0,0 +1,120 @@
+package org.eclipse.jst.jsf.designtime.tests;
+
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
+import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
+import org.eclipse.jst.jsf.context.symbol.IInstanceSymbol;
+import org.eclipse.jst.jsf.context.symbol.ISymbol;
+import org.eclipse.jst.jsf.context.symbol.source.ISymbolConstants;
+import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
+import org.eclipse.jst.jsf.designtime.internal.jsp.JSPDefaultSymbolFactory;
+import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
+import org.eclipse.jst.jsf.test.util.JSFTestUtil;
+import org.eclipse.jst.jsf.test.util.TestFileResource;
+import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+
+public class TestJSPDefaultSymbolFactory extends TestCase
+{
+ private IFile _testJSP;
+ private JSFFacetedTestEnvironment _jsfFactedTestEnvironment;
+ private IStructuredModel _structuredModel;
+ private IStructuredDocument _structuredDocument;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ JSFTestUtil.setValidationEnabled(false);
+ JSFTestUtil.setInternetProxyPreferences(true, "www-proxy.us.oracle.com","80");
+
+ final WebProjectTestEnvironment projectTestEnvironment =
+ new WebProjectTestEnvironment("TestJSPDefaultSymbolFactory"+getName());
+ projectTestEnvironment.createProject(false);
+
+ final JDTTestEnvironment jdtTestEnvironment =
+ new JDTTestEnvironment(projectTestEnvironment);
+
+ final TestFileResource input = new TestFileResource();
+ input.load(DesignTimeTestsPlugin.getDefault().getBundle(),
+ "/testdata/bundle1.resources.data");
+ jdtTestEnvironment.addResourceFile("src"
+ , new ByteArrayInputStream(input.toBytes())
+ , "bundles", "bundle1.properties");
+
+ final IResource res =
+ projectTestEnvironment.loadResourceInWebRoot(DesignTimeTestsPlugin.getDefault().getBundle()
+ , "/testdata/testdata1.jsp.data", "testdata1.jsp");
+ _testJSP = (IFile) res;
+
+ _jsfFactedTestEnvironment = new JSFFacetedTestEnvironment(projectTestEnvironment);
+ _jsfFactedTestEnvironment.initialize(IJSFCoreConstants.FACET_VERSION_1_1);
+
+ _structuredModel = StructuredModelManager.getModelManager().getModelForRead(_testJSP);
+ _structuredDocument = _structuredModel.getStructuredDocument();
+
+ }
+
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ _structuredModel.releaseFromRead();
+ }
+
+ public void testSupports()
+ {
+ JSPDefaultSymbolFactory factory = new JSPDefaultSymbolFactory();
+
+ // must be a structured document context
+ assertFalse(factory.supports(_testJSP));
+
+ final IStructuredDocumentContext context =
+ IStructuredDocumentContextFactory.INSTANCE
+ .getContext(_structuredDocument, 0);
+
+ // must work for a JSP document context
+ assertTrue(factory.supports(context));
+ }
+
+ public void testCreate()
+ {
+ final JSPDefaultSymbolFactory factory = new JSPDefaultSymbolFactory();
+
+ final IStructuredDocumentContext context =
+ IStructuredDocumentContextFactory.INSTANCE
+ .getContext(_structuredDocument, 0);
+
+ ISymbol var =
+ factory.create("notAVariable"
+ , ISymbolConstants.SYMBOL_SCOPE_REQUEST, context, new ArrayList());
+ assertNull(var);
+
+ var = factory.create("bundle"
+ , ISymbolConstants.SYMBOL_SCOPE_REQUEST
+ , IStructuredDocumentContextFactory.INSTANCE.getContext(_structuredDocument, 569)
+ , new ArrayList());
+
+ // load bundle introduces a variable
+ assertNotNull(var);
+ assertTrue(var instanceof IInstanceSymbol);
+ assertEquals("bundle", var.getName());
+
+ var = factory.create("row"
+ , ISymbolConstants.SYMBOL_SCOPE_REQUEST
+ , IStructuredDocumentContextFactory.INSTANCE.getContext(_structuredDocument, 1397)
+ , new ArrayList());
+
+ // data table introduces a variable
+ assertNotNull(var);
+ assertTrue(var instanceof IInstanceSymbol);
+ assertEquals("row", var.getName());
+ }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestStartupHandler.java b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestStartupHandler.java
new file mode 100644
index 0000000..cba6c99
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/src/org/eclipse/jst/jsf/designtime/tests/TestStartupHandler.java
@@ -0,0 +1,83 @@
+package org.eclipse.jst.jsf.designtime.tests;
+
+import java.io.ByteArrayInputStream;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jst.jsf.core.IJSFCoreConstants;
+import org.eclipse.jst.jsf.core.tests.util.JSFFacetedTestEnvironment;
+import org.eclipse.jst.jsf.designtime.internal.jsp.StartupHandler;
+import org.eclipse.jst.jsf.test.util.JDTTestEnvironment;
+import org.eclipse.jst.jsf.test.util.JSFTestUtil;
+import org.eclipse.jst.jsf.test.util.TestFileResource;
+import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
+import org.eclipse.ui.IEditorDescriptor;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorRegistry;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.ide.ResourceUtil;
+
+/**
+ * Some basic coverage of the editor open listener registered by the
+ * StartupHandler
+ *
+ * @author cbateman
+ *
+ */
+public class TestStartupHandler extends TestCase
+{
+ private IFile _testJSP1;
+ private JSFFacetedTestEnvironment _jsfFactedTestEnvironment;
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ JSFTestUtil.setValidationEnabled(false);
+ JSFTestUtil.setInternetProxyPreferences(true, "www-proxy.us.oracle.com","80");
+
+ final WebProjectTestEnvironment projectTestEnvironment =
+ new WebProjectTestEnvironment("TestDTJSPExternalContext"+getName());
+ projectTestEnvironment.createProject(false);
+
+ JDTTestEnvironment jdtTestEnvironment =
+ new JDTTestEnvironment(projectTestEnvironment);
+
+ final TestFileResource input = new TestFileResource();
+ input.load(DesignTimeTestsPlugin.getDefault().getBundle(),
+ "/testdata/bundle1.resources.data");
+ jdtTestEnvironment.addResourceFile("src"
+ , new ByteArrayInputStream(input.toBytes())
+ , "bundles", "bundle1.properties");
+
+ IResource res = projectTestEnvironment.loadResourceInWebRoot(DesignTimeTestsPlugin.getDefault().getBundle()
+ , "/testdata/testdata1.jsp.data", "testdata1.jsp");
+ _testJSP1 = (IFile) res;
+
+ _jsfFactedTestEnvironment = new JSFFacetedTestEnvironment(projectTestEnvironment);
+ _jsfFactedTestEnvironment.initialize(IJSFCoreConstants.FACET_VERSION_1_1);
+ }
+
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ }
+
+ public void testLaunchEditor() throws Exception
+ {
+ final IWorkbenchPage curPage =
+ PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ final IEditorPart editor =
+ IDE.openEditor
+ (curPage
+ , _testJSP1);
+ assertNotNull(editor);
+ final IEditorPart foundEditor = ResourceUtil.findEditor(curPage, _testJSP1);
+ assertEquals(editor, foundEditor);
+
+ StartupHandler handler;
+ }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/testdata/MethodBean.java.data b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/testdata/MethodBean.java.data
new file mode 100644
index 0000000..b657a03
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/testdata/MethodBean.java.data
@@ -0,0 +1,14 @@
+
+
+public class MethodBean
+{
+ public String actionMethod()
+ {
+ return "chicken";
+ }
+
+ public String actionMethodWithParam(String arg)
+ {
+ return arg;
+ }
+}
diff --git a/jsf/tests/org.eclipse.jst.jsf.designtime.tests/testdata/testdata1.jsp.data b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/testdata/testdata1.jsp.data
new file mode 100644
index 0000000..b784cba
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.designtime.tests/testdata/testdata1.jsp.data
@@ -0,0 +1,54 @@
+
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<%--
+The taglib directive below imports the JSTL library. If you uncomment it,
+you must also add the JSTL library to the project. The Add Library... action
+on Libraries node in Projects view can be used to add the JSTL 1.1 library.
+--%>
+
+<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<f:view>
+ <f:loadBundle var="bundle" basename="bundles.bundle1"/>
+
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title><h:outputText value="#{bundle['page.title']}"/></title>
+ <link rel="stylesheet" href="style/style.css" media="screen"/>
+ </head>
+ <body>
+ <h:form id="mainForm">
+ <h1><h:outputText value="#{bundle['page.header']}"/></h1>
+ <h:messages/>
+ <h:panelGrid columns="2">
+ <h:outputLabel for="userId" value="Username:"/>
+ <h:inputText id="userId" value="#{loginRequest.id}"/>
+ <h:outputLabel for="password" value="Password:"/>
+ <h:inputSecret id="password" value="#{loginRequest.passwordPlainText}"/>
+ </h:panelGrid>
+ <h:commandButton action="#{appController.loginActions}" value="#{bundle['login.button.value']}"/><br>
+ <h:dataTable var="row" border="1">
+ <h:column id="column1">
+ <f:facet name="header">
+ <h:outputText value="column1"></h:outputText>
+ </f:facet>
+ </h:column>
+ <h:column id="column2">
+ <f:facet name="header">
+ <h:outputText value="column2"></h:outputText>
+ </f:facet>
+ </h:column>
+ </h:dataTable>
+ </h:form>
+
+ </body>
+</html>
+</f:view>
+
+