You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/03/02 22:17:47 UTC

[09/10] git commit: Moves showcase related JSPs under WEB-INF

Moves showcase related JSPs under WEB-INF


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/65eb9751
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/65eb9751
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/65eb9751

Branch: refs/heads/feature/move-jsps-under-webinf
Commit: 65eb97514c635da87c60f2a7b0d6bbbdd79358ee
Parents: d07e804
Author: Lukasz Lenart <lu...@apache.org>
Authored: Sun Mar 2 22:02:49 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Sun Mar 2 22:02:49 2014 +0100

----------------------------------------------------------------------
 .../main/resources/struts-actionchaining.xml    |   2 +-
 .../showcase/src/main/resources/struts-ajax.xml |  42 +-
 .../showcase/src/main/resources/struts-chat.xml |  28 +-
 .../src/main/resources/struts-conversion.xml    |  40 +-
 .../src/main/resources/struts-fileupload.xml    |  14 +-
 .../src/main/resources/struts-freemarker.xml    |   4 +-
 .../src/main/resources/struts-hangman.xml       |  18 +-
 .../src/main/resources/struts-integration.xml   |   4 +-
 .../src/main/resources/struts-interactive.xml   |   2 +-
 .../src/main/resources/struts-model-driven.xml  |   4 +-
 .../src/main/resources/struts-tags-non-ui.xml   |  54 +-
 .../src/main/resources/struts-tags-ui.xml       |  42 +-
 .../src/main/resources/struts-tiles.xml         |   2 +-
 .../src/main/resources/struts-token.xml         |  24 +-
 .../src/main/resources/struts-validation.xml    |  30 +-
 .../showcase/src/main/resources/struts-wait.xml |  12 +-
 apps/showcase/src/main/resources/struts.xml     |   6 +-
 .../actionchaining/actionChainingResult.jsp     |  23 +
 .../src/main/webapp/WEB-INF/ajax/AjaxResult.jsp |  12 +
 .../src/main/webapp/WEB-INF/ajax/AjaxResult2.js |   2 +
 .../main/webapp/WEB-INF/ajax/AjaxResult3.jsp    |  12 +
 .../webapp/WEB-INF/ajax/autocompleter/index.jsp | 178 ++++++
 .../src/main/webapp/WEB-INF/ajax/bind/index.jsp |  61 ++
 .../main/webapp/WEB-INF/ajax/commonInclude.jsp  |   5 +
 .../src/main/webapp/WEB-INF/ajax/footer.jsp     |   8 +
 .../src/main/webapp/WEB-INF/ajax/index.jsp      |  24 +
 .../src/main/webapp/WEB-INF/ajax/options.ftl    |   5 +
 .../webapp/WEB-INF/ajax/remotebutton/index.jsp  |  70 +++
 .../webapp/WEB-INF/ajax/remotediv/example1.jsp  |  23 +
 .../webapp/WEB-INF/ajax/remotediv/example10.jsp |  31 +
 .../webapp/WEB-INF/ajax/remotediv/example2.jsp  |  28 +
 .../webapp/WEB-INF/ajax/remotediv/example3.jsp  |  27 +
 .../webapp/WEB-INF/ajax/remotediv/example4.jsp  |  28 +
 .../webapp/WEB-INF/ajax/remotediv/example5.jsp  |  27 +
 .../webapp/WEB-INF/ajax/remotediv/example6.jsp  |  24 +
 .../webapp/WEB-INF/ajax/remotediv/example7.jsp  |  27 +
 .../webapp/WEB-INF/ajax/remotediv/example8.jsp  |  57 ++
 .../webapp/WEB-INF/ajax/remotediv/example9.jsp  |  63 ++
 .../webapp/WEB-INF/ajax/remotediv/index.jsp     |  55 ++
 .../webapp/WEB-INF/ajax/remoteforms/index.jsp   | 119 ++++
 .../webapp/WEB-INF/ajax/remotelink/index.jsp    | 127 ++++
 .../WEB-INF/ajax/tabbedpanel/example1.jsp       |  95 +++
 .../WEB-INF/ajax/tabbedpanel/example2.jsp       |  26 +
 .../WEB-INF/ajax/tabbedpanel/example3.jsp       |  46 ++
 .../WEB-INF/ajax/tabbedpanel/example4.jsp       |  57 ++
 .../WEB-INF/ajax/tabbedpanel/example5.jsp       |  29 +
 .../WEB-INF/ajax/tabbedpanel/example5Ok.jsp     |   9 +
 .../WEB-INF/ajax/tabbedpanel/example6.jsp       |  40 ++
 .../webapp/WEB-INF/ajax/tabbedpanel/index.jsp   |  28 +
 .../ajax/tabbedpanel/nodecorate/panel1.ftl      |   3 +
 .../ajax/tabbedpanel/nodecorate/panel2.ftl      |   7 +
 .../tabbedpanel/nodecorate/panel2Submit.ftl     |   2 +
 .../ajax/tabbedpanel/nodecorate/panel3.ftl      |   9 +
 .../tabbedpanel/nodecorate/panel3Submit.ftl     |   2 +
 .../src/main/webapp/WEB-INF/ajax/testjs.jsp     |  14 +
 .../webapp/WEB-INF/ajax/tree/getCategory.jsp    |  23 +
 .../WEB-INF/ajax/tree/partialChunkHeader.jsp    |   6 +
 .../main/webapp/WEB-INF/ajax/tree/toggle.jsp    |  12 +
 .../src/main/webapp/WEB-INF/ajax/tree/tree.jsp  |  13 +
 .../main/webapp/WEB-INF/ajax/widgets/index.jsp  |  40 ++
 .../src/main/webapp/WEB-INF/chat/chatLogin.ftl  |  27 +
 .../src/main/webapp/WEB-INF/chat/createRoom.ftl |   2 +
 .../src/main/webapp/WEB-INF/chat/index.jsp      |   3 +
 .../WEB-INF/chat/messagesAvailableInRoom.ftl    |  33 +
 .../main/webapp/WEB-INF/chat/roomSelection.ftl  | 172 ++++++
 .../main/webapp/WEB-INF/chat/roomsAvailable.ftl |  44 ++
 .../WEB-INF/chat/sendMessageToRoomResult.ftl    |   2 +
 .../src/main/webapp/WEB-INF/chat/showRoom.ftl   | 167 +++++
 .../main/webapp/WEB-INF/chat/usersAvailable.ftl |   6 +
 .../WEB-INF/chat/usersAvailableInRoom.ftl       |   8 +
 .../webapp/WEB-INF/conversion/Address.java.txt  |  35 ++
 .../WEB-INF/conversion/AddressAction.java.txt   |  44 ++
 .../conversion/EnumTypeConverter.java.txt       |  55 ++
 .../WEB-INF/conversion/OperationsEnum.java.txt  |  30 +
 .../conversion/OperationsEnumAction.java.txt    |  53 ++
 .../OperationsEnumActionConversion.txt          |   4 +
 .../webapp/WEB-INF/conversion/Person.java.txt   |  34 +
 .../WEB-INF/conversion/PersonAction.java.txt    |  43 ++
 .../WEB-INF/conversion/enterAddressInfo.jsp     |  53 ++
 .../WEB-INF/conversion/enterOperations.jsp      |  38 ++
 .../WEB-INF/conversion/enterPersonInfo.jsp      |  67 ++
 .../main/webapp/WEB-INF/conversion/index.jsp    |  35 ++
 .../WEB-INF/conversion/showAddressInfo.jsp      |  21 +
 .../WEB-INF/conversion/showOperations.jsp       |  21 +
 .../WEB-INF/conversion/showPersonInfo.jsp       |  24 +
 .../customTheme/ftlCustomTemplate.ftl           |   7 +
 .../customTheme/jspCustomTemplate.jsp           |   8 +
 apps/showcase/src/main/webapp/WEB-INF/date.jsp  |   2 +
 .../webapp/WEB-INF/empmanager/editEmployee.jsp  |  56 ++
 .../webapp/WEB-INF/empmanager/editSkill.jsp     |  42 ++
 .../main/webapp/WEB-INF/empmanager/index.jsp    |   1 +
 .../webapp/WEB-INF/empmanager/listEmployees.jsp |  43 ++
 .../webapp/WEB-INF/empmanager/listSkills.jsp    |  41 ++
 .../main/webapp/WEB-INF/filedownload/index.jsp  |  36 ++
 .../fileupload/multipleUploadUsingArray.jsp     |  32 +
 .../fileupload/multipleUploadUsingList.jsp      |  32 +
 .../WEB-INF/fileupload/upload-success.jsp       |  31 +
 .../main/webapp/WEB-INF/fileupload/upload.jsp   |  27 +
 .../freemarker/customFreemarkerManagerUsage.ftl |  34 +
 .../main/webapp/WEB-INF/freemarker/index.jsp    |   3 +
 .../webapp/WEB-INF/freemarker/standardTags.ftl  |  24 +
 .../src/main/webapp/WEB-INF/hangman/blank.ftl   |   0
 .../main/webapp/WEB-INF/hangman/hangmanAjax.ftl | 247 ++++++++
 .../webapp/WEB-INF/hangman/hangmanNonAjax.ftl   | 144 +++++
 .../hangman/updateCharacterAvailable.ftl        |  45 ++
 .../webapp/WEB-INF/hangman/updateGuessLeft.ftl  |   7 +
 .../webapp/WEB-INF/hangman/updateScaffold.ftl   |   3 +
 .../WEB-INF/hangman/updateVocabCharacters.ftl   |  20 +
 apps/showcase/src/main/webapp/WEB-INF/help.jsp  |  32 +
 .../webapp/WEB-INF/integration/modelDriven.jsp  |  44 ++
 .../WEB-INF/integration/modelDrivenResult.jsp   |  43 ++
 .../main/webapp/WEB-INF/interactive/demo.jsp    |   0
 .../WEB-INF/interactive/example-action.jsp      |  76 +++
 .../main/webapp/WEB-INF/interactive/index.jsp   | 241 ++++++++
 .../main/webapp/WEB-INF/interactive/jsp_0.jsp   |  62 ++
 .../main/webapp/WEB-INF/interactive/jsp_1.jsp   |  52 ++
 .../main/webapp/WEB-INF/interactive/jsp_2.jsp   |  54 ++
 .../main/webapp/WEB-INF/interactive/jsp_3.jsp   |  65 ++
 .../main/webapp/WEB-INF/interactive/jsp_4.jsp   |  16 +
 .../main/webapp/WEB-INF/interactive/ognl_0.jsp  |  30 +
 .../main/webapp/WEB-INF/interactive/ognl_1.jsp  |  28 +
 .../main/webapp/WEB-INF/interactive/ognl_2.jsp  |  43 ++
 .../main/webapp/WEB-INF/interactive/ognl_3.jsp  |  54 ++
 .../main/webapp/WEB-INF/interactive/ognl_4.jsp  |  32 +
 .../main/webapp/WEB-INF/interactive/ognl_5.jsp  |  25 +
 .../main/webapp/WEB-INF/interactive/ognl_6.jsp  |  43 ++
 .../main/webapp/WEB-INF/interactive/ognl_7.jsp  |  55 ++
 .../main/webapp/WEB-INF/interactive/ognl_8.jsp  |  18 +
 .../main/webapp/WEB-INF/jsf/employee/edit.jsp   | 113 ++++
 .../main/webapp/WEB-INF/jsf/employee/list.jsp   |  75 +++
 .../src/main/webapp/WEB-INF/jsf/index.jsp       |  35 ++
 .../webapp/WEB-INF/modelDriven/modelDriven.jsp  |  42 ++
 .../WEB-INF/modelDriven/modelDrivenResult.jsp   |  42 ++
 .../main/webapp/WEB-INF/person/edit-person.jsp  |  53 ++
 .../src/main/webapp/WEB-INF/person/index.jsp    |   1 +
 .../main/webapp/WEB-INF/person/list-people.ftl  |  44 ++
 .../main/webapp/WEB-INF/person/new-person.ftl   |  49 ++
 .../src/main/webapp/WEB-INF/showcase.jsp        |  30 +
 .../tags/non-ui/actionPrefix/actionPrefix.ftl   |  25 +
 .../non-ui/actionPrefix/actionPrefixExample.ftl |  54 ++
 .../tags/non-ui/actionPrefix/methodPrefix.ftl   |  25 +
 .../tags/non-ui/actionPrefix/normalSubmit.ftl   |  24 +
 .../actionPrefix/redirectActionPrefix.ftl       |  28 +
 .../tags/non-ui/actionTag/includedPage.jsp      |   1 +
 .../tags/non-ui/actionTag/includedPage2.jsp     |   2 +
 .../tags/non-ui/actionTag/includedPage3.jsp     |   2 +
 .../tags/non-ui/actionTag/showActionTagDemo.jsp |  52 ++
 .../main/webapp/WEB-INF/tags/non-ui/date.jsp    | 114 ++++
 .../main/webapp/WEB-INF/tags/non-ui/debug.jsp   |  30 +
 .../webapp/WEB-INF/tags/non-ui/ifTag/testIf.ftl | 618 ++++++++++++++++++
 .../webapp/WEB-INF/tags/non-ui/ifTag/testIf.jsp | 619 +++++++++++++++++++
 .../iteratorTag/appendIteratorTagDemoResult.jsp |  34 +
 .../iteratorGeneratorTagDemoResult.jsp          |  29 +
 .../iteratorTag/mergeIteratorTagDemoResult.jsp  |  33 +
 .../iteratorTag/showAppendIteratorTagDemo.jsp   |  28 +
 .../showIteratorGeneratorTagDemo.jsp            |  29 +
 .../iteratorTag/showMergeIteratorTagDemo.jsp    |  29 +
 .../iteratorTag/subsetIteratorTagDemo.jsp       |  29 +
 .../iteratorTag/subsetIteratorTagDemoResult.jsp |  30 +
 .../WEB-INF/tags/ui/actionTagExampleCalled.jsp  |   2 +
 .../WEB-INF/tags/ui/actionTagExampleCalling.jsp |  24 +
 .../WEB-INF/tags/ui/componentTagExample.jsp     |  69 +++
 .../webapp/WEB-INF/tags/ui/datepicker/index.jsp |  33 +
 .../WEB-INF/tags/ui/dynamicTreeSelect.jsp       |   6 +
 .../src/main/webapp/WEB-INF/tags/ui/example.jsp | 149 +++++
 .../src/main/webapp/WEB-INF/tags/ui/example.vm  |  39 ++
 .../webapp/WEB-INF/tags/ui/exampleSubmited.jsp  |  58 ++
 .../webapp/WEB-INF/tags/ui/exampleSubmited.vm   |  61 ++
 .../WEB-INF/tags/ui/images/backgroundImage.jpg  | Bin 0 -> 13192 bytes
 .../webapp/WEB-INF/tags/ui/images/leopard.jpg   | Bin 0 -> 3850 bytes
 .../tags/ui/lotsOfOptiontransferselect.jsp      | 101 +++
 .../ui/lotsOfOptiontransferselectSubmit.jsp     | 103 +++
 .../main/webapp/WEB-INF/tags/ui/moreSelects.jsp |  69 +++
 .../WEB-INF/tags/ui/moreSelectsSubmit.jsp       |  63 ++
 .../webapp/WEB-INF/tags/ui/staticTreeSelect.jsp |  11 +
 .../webapp/WEB-INF/tags/ui/timepicker/index.jsp |  31 +
 .../WEB-INF/tags/ui/treeExampleAjaxDynamic.ftl  |   9 +
 .../WEB-INF/tags/ui/treeExampleAjaxDynamic.jsp  |  25 +
 .../WEB-INF/tags/ui/treeExampleDynamic.jsp      |  54 ++
 .../WEB-INF/tags/ui/treeExampleStatic.jsp       |  61 ++
 .../WEB-INF/template/xhtml/mytemplate.jsp       |   9 +
 .../src/main/webapp/WEB-INF/tiles/body.ftl      |  16 +
 .../src/main/webapp/WEB-INF/tiles/body.jsp      |  24 +
 .../src/main/webapp/WEB-INF/tiles/header.jsp    |   3 +
 .../src/main/webapp/WEB-INF/tiles/layout.ftl    |  10 +
 .../src/main/webapp/WEB-INF/tiles/layout.jsp    |  13 +
 .../main/webapp/WEB-INF/token/doublePost.jsp    |  28 +
 .../src/main/webapp/WEB-INF/token/example1.jsp  |  50 ++
 .../src/main/webapp/WEB-INF/token/example2.jsp  |  38 ++
 .../src/main/webapp/WEB-INF/token/example3.jsp  |  37 ++
 .../src/main/webapp/WEB-INF/token/example4.ftl  |  40 ++
 .../src/main/webapp/WEB-INF/token/index.jsp     |  48 ++
 .../main/webapp/WEB-INF/token/transferDone.jsp  |  48 ++
 .../validation/clientSideValidationExample.jsp  |  64 ++
 .../validation/fieldValidatorsExample.jsp       |  63 ++
 .../main/webapp/WEB-INF/validation/footer.jsp   |   8 +
 .../main/webapp/WEB-INF/validation/index.jsp    |  51 ++
 .../validation/nonFieldValidatorsExample.jsp    |  46 ++
 .../webapp/WEB-INF/validation/quiz-ajax.jsp     | 104 ++++
 .../webapp/WEB-INF/validation/quiz-basic.jsp    |  41 ++
 .../WEB-INF/validation/quiz-client-css.jsp      |  37 ++
 .../webapp/WEB-INF/validation/quiz-client.jsp   |  37 ++
 .../webapp/WEB-INF/validation/quiz-success.jsp  |  27 +
 .../storeErrorsAcrossRequestCancel.jsp          |  30 +
 .../storeErrorsAcrossRequestExample.jsp         |  54 ++
 .../validation/storeErrorsAcrossRequestOk.jsp   |  31 +
 .../successClientSideValidationExample.jsp      |  64 ++
 .../successFieldValidatorsExample.jsp           |  61 ++
 .../successNonFieldValidatorsExample.jsp        |  45 ++
 .../successVisitorValidatorsExample.jsp         |  46 ++
 .../validation/visitorValidatorsExample.jsp     |  43 ++
 .../src/main/webapp/WEB-INF/viewSource.jsp      |  54 ++
 .../src/main/webapp/WEB-INF/wait/complete.jsp   |  25 +
 .../src/main/webapp/WEB-INF/wait/example1.jsp   |  28 +
 .../src/main/webapp/WEB-INF/wait/example2.jsp   |  29 +
 .../src/main/webapp/WEB-INF/wait/example3.jsp   |  29 +
 .../src/main/webapp/WEB-INF/wait/index.jsp      |  34 +
 .../src/main/webapp/WEB-INF/wait/wait.jsp       |  53 ++
 .../src/main/webapp/WEB-INF/xslt/index.jsp      |  26 +
 .../actionchaining/actionChainingResult.jsp     |  23 -
 .../src/main/webapp/ajax/AjaxResult.jsp         |  12 -
 .../src/main/webapp/ajax/AjaxResult2.js         |   2 -
 .../src/main/webapp/ajax/AjaxResult3.jsp        |  12 -
 .../main/webapp/ajax/autocompleter/index.jsp    | 178 ------
 .../src/main/webapp/ajax/bind/index.jsp         |  61 --
 .../src/main/webapp/ajax/commonInclude.jsp      |   5 -
 apps/showcase/src/main/webapp/ajax/footer.jsp   |   8 -
 apps/showcase/src/main/webapp/ajax/index.jsp    |  24 -
 apps/showcase/src/main/webapp/ajax/options.ftl  |   5 -
 .../src/main/webapp/ajax/remotebutton/index.jsp |  70 ---
 .../src/main/webapp/ajax/remotediv/example1.jsp |  23 -
 .../main/webapp/ajax/remotediv/example10.jsp    |  31 -
 .../src/main/webapp/ajax/remotediv/example2.jsp |  28 -
 .../src/main/webapp/ajax/remotediv/example3.jsp |  27 -
 .../src/main/webapp/ajax/remotediv/example4.jsp |  28 -
 .../src/main/webapp/ajax/remotediv/example5.jsp |  27 -
 .../src/main/webapp/ajax/remotediv/example6.jsp |  24 -
 .../src/main/webapp/ajax/remotediv/example7.jsp |  27 -
 .../src/main/webapp/ajax/remotediv/example8.jsp |  57 --
 .../src/main/webapp/ajax/remotediv/example9.jsp |  63 --
 .../src/main/webapp/ajax/remotediv/index.jsp    |  55 --
 .../src/main/webapp/ajax/remoteforms/index.jsp  | 119 ----
 .../src/main/webapp/ajax/remotelink/index.jsp   | 127 ----
 .../main/webapp/ajax/tabbedpanel/example1.jsp   |  95 ---
 .../main/webapp/ajax/tabbedpanel/example2.jsp   |  26 -
 .../main/webapp/ajax/tabbedpanel/example3.jsp   |  46 --
 .../main/webapp/ajax/tabbedpanel/example4.jsp   |  57 --
 .../main/webapp/ajax/tabbedpanel/example5.jsp   |  29 -
 .../main/webapp/ajax/tabbedpanel/example5Ok.jsp |   9 -
 .../main/webapp/ajax/tabbedpanel/example6.jsp   |  40 --
 .../src/main/webapp/ajax/tabbedpanel/index.jsp  |  28 -
 .../ajax/tabbedpanel/nodecorate/panel1.ftl      |   3 -
 .../ajax/tabbedpanel/nodecorate/panel2.ftl      |   7 -
 .../tabbedpanel/nodecorate/panel2Submit.ftl     |   2 -
 .../ajax/tabbedpanel/nodecorate/panel3.ftl      |   9 -
 .../tabbedpanel/nodecorate/panel3Submit.ftl     |   2 -
 apps/showcase/src/main/webapp/ajax/testjs.jsp   |  14 -
 .../src/main/webapp/ajax/tree/getCategory.jsp   |  23 -
 .../webapp/ajax/tree/partialChunkHeader.jsp     |   6 -
 .../src/main/webapp/ajax/tree/toggle.jsp        |  12 -
 .../showcase/src/main/webapp/ajax/tree/tree.jsp |  13 -
 .../src/main/webapp/ajax/widgets/index.jsp      |  40 --
 .../showcase/src/main/webapp/chat/chatLogin.ftl |  27 -
 .../src/main/webapp/chat/createRoom.ftl         |   2 -
 apps/showcase/src/main/webapp/chat/index.jsp    |   3 -
 .../webapp/chat/messagesAvailableInRoom.ftl     |  33 -
 .../src/main/webapp/chat/roomSelection.ftl      | 172 ------
 .../src/main/webapp/chat/roomsAvailable.ftl     |  44 --
 .../webapp/chat/sendMessageToRoomResult.ftl     |   2 -
 apps/showcase/src/main/webapp/chat/showRoom.ftl | 167 -----
 .../src/main/webapp/chat/usersAvailable.ftl     |   6 -
 .../main/webapp/chat/usersAvailableInRoom.ftl   |   8 -
 .../src/main/webapp/conversion/Address.java.txt |  35 --
 .../webapp/conversion/AddressAction.java.txt    |  44 --
 .../conversion/EnumTypeConverter.java.txt       |  55 --
 .../webapp/conversion/OperationsEnum.java.txt   |  30 -
 .../conversion/OperationsEnumAction.java.txt    |  53 --
 .../OperationsEnumActionConversion.txt          |   4 -
 .../src/main/webapp/conversion/Person.java.txt  |  34 -
 .../webapp/conversion/PersonAction.java.txt     |  43 --
 .../main/webapp/conversion/enterAddressInfo.jsp |  53 --
 .../main/webapp/conversion/enterOperations.jsp  |  38 --
 .../main/webapp/conversion/enterPersonInfo.jsp  |  67 --
 .../src/main/webapp/conversion/index.jsp        |  35 --
 .../main/webapp/conversion/showAddressInfo.jsp  |  21 -
 .../main/webapp/conversion/showOperations.jsp   |  21 -
 .../main/webapp/conversion/showPersonInfo.jsp   |  24 -
 .../customTheme/ftlCustomTemplate.ftl           |   7 -
 .../customTheme/jspCustomTemplate.jsp           |   8 -
 apps/showcase/src/main/webapp/date.jsp          |   2 -
 .../src/main/webapp/empmanager/editEmployee.jsp |  56 --
 .../src/main/webapp/empmanager/editSkill.jsp    |  42 --
 .../src/main/webapp/empmanager/index.jsp        |   1 -
 .../main/webapp/empmanager/listEmployees.jsp    |  43 --
 .../src/main/webapp/empmanager/listSkills.jsp   |  41 --
 .../src/main/webapp/filedownload/index.jsp      |  36 --
 .../fileupload/multipleUploadUsingArray.jsp     |  32 -
 .../fileupload/multipleUploadUsingList.jsp      |  32 -
 .../main/webapp/fileupload/upload-success.jsp   |  31 -
 .../src/main/webapp/fileupload/upload.jsp       |  27 -
 .../freemarker/customFreemarkerManagerUsage.ftl |  34 -
 .../src/main/webapp/freemarker/index.jsp        |   3 -
 .../src/main/webapp/freemarker/standardTags.ftl |  24 -
 apps/showcase/src/main/webapp/hangman/blank.ftl |   0
 .../src/main/webapp/hangman/hangmanAjax.ftl     | 247 --------
 .../src/main/webapp/hangman/hangmanNonAjax.ftl  | 144 -----
 .../webapp/hangman/updateCharacterAvailable.ftl |  45 --
 .../src/main/webapp/hangman/updateGuessLeft.ftl |   7 -
 .../src/main/webapp/hangman/updateScaffold.ftl  |   3 -
 .../webapp/hangman/updateVocabCharacters.ftl    |  20 -
 apps/showcase/src/main/webapp/help.jsp          |  32 -
 .../src/main/webapp/integration/modelDriven.jsp |  44 --
 .../webapp/integration/modelDrivenResult.jsp    |  43 --
 .../src/main/webapp/interactive/demo.jsp        |   0
 .../main/webapp/interactive/example-action.jsp  |  76 ---
 .../src/main/webapp/interactive/index.jsp       | 241 --------
 .../src/main/webapp/interactive/jsp_0.jsp       |  62 --
 .../src/main/webapp/interactive/jsp_1.jsp       |  52 --
 .../src/main/webapp/interactive/jsp_2.jsp       |  54 --
 .../src/main/webapp/interactive/jsp_3.jsp       |  65 --
 .../src/main/webapp/interactive/jsp_4.jsp       |  16 -
 .../src/main/webapp/interactive/ognl_0.jsp      |  30 -
 .../src/main/webapp/interactive/ognl_1.jsp      |  28 -
 .../src/main/webapp/interactive/ognl_2.jsp      |  43 --
 .../src/main/webapp/interactive/ognl_3.jsp      |  54 --
 .../src/main/webapp/interactive/ognl_4.jsp      |  32 -
 .../src/main/webapp/interactive/ognl_5.jsp      |  25 -
 .../src/main/webapp/interactive/ognl_6.jsp      |  43 --
 .../src/main/webapp/interactive/ognl_7.jsp      |  55 --
 .../src/main/webapp/interactive/ognl_8.jsp      |  18 -
 .../src/main/webapp/jsf/employee/edit.jsp       | 113 ----
 .../src/main/webapp/jsf/employee/list.jsp       |  75 ---
 apps/showcase/src/main/webapp/jsf/index.jsp     |  35 --
 .../src/main/webapp/modelDriven/modelDriven.jsp |  42 --
 .../webapp/modelDriven/modelDrivenResult.jsp    |  42 --
 .../src/main/webapp/person/edit-person.jsp      |  53 --
 apps/showcase/src/main/webapp/person/index.jsp  |   1 -
 .../src/main/webapp/person/list-people.ftl      |  44 --
 .../src/main/webapp/person/new-person.ftl       |  49 --
 apps/showcase/src/main/webapp/showcase.jsp      |  30 -
 .../tags/non-ui/actionPrefix/actionPrefix.ftl   |  25 -
 .../non-ui/actionPrefix/actionPrefixExample.ftl |  54 --
 .../tags/non-ui/actionPrefix/methodPrefix.ftl   |  25 -
 .../tags/non-ui/actionPrefix/normalSubmit.ftl   |  24 -
 .../actionPrefix/redirectActionPrefix.ftl       |  28 -
 .../tags/non-ui/actionTag/includedPage.jsp      |   1 -
 .../tags/non-ui/actionTag/includedPage2.jsp     |   2 -
 .../tags/non-ui/actionTag/includedPage3.jsp     |   2 -
 .../tags/non-ui/actionTag/showActionTagDemo.jsp |  52 --
 .../src/main/webapp/tags/non-ui/date.jsp        | 114 ----
 .../src/main/webapp/tags/non-ui/debug.jsp       |  30 -
 .../main/webapp/tags/non-ui/ifTag/testIf.ftl    | 618 ------------------
 .../main/webapp/tags/non-ui/ifTag/testIf.jsp    | 619 -------------------
 .../iteratorTag/appendIteratorTagDemoResult.jsp |  34 -
 .../iteratorGeneratorTagDemoResult.jsp          |  29 -
 .../iteratorTag/mergeIteratorTagDemoResult.jsp  |  33 -
 .../iteratorTag/showAppendIteratorTagDemo.jsp   |  28 -
 .../showIteratorGeneratorTagDemo.jsp            |  29 -
 .../iteratorTag/showMergeIteratorTagDemo.jsp    |  29 -
 .../iteratorTag/subsetIteratorTagDemo.jsp       |  29 -
 .../iteratorTag/subsetIteratorTagDemoResult.jsp |  30 -
 .../webapp/tags/ui/actionTagExampleCalled.jsp   |   2 -
 .../webapp/tags/ui/actionTagExampleCalling.jsp  |  24 -
 .../main/webapp/tags/ui/componentTagExample.jsp |  69 ---
 .../main/webapp/tags/ui/datepicker/index.jsp    |  33 -
 .../main/webapp/tags/ui/dynamicTreeSelect.jsp   |   6 -
 .../src/main/webapp/tags/ui/example.jsp         | 149 -----
 .../showcase/src/main/webapp/tags/ui/example.vm |  39 --
 .../src/main/webapp/tags/ui/exampleSubmited.jsp |  58 --
 .../src/main/webapp/tags/ui/exampleSubmited.vm  |  61 --
 .../webapp/tags/ui/images/backgroundImage.jpg   | Bin 13192 -> 0 bytes
 .../src/main/webapp/tags/ui/images/leopard.jpg  | Bin 3850 -> 0 bytes
 .../tags/ui/lotsOfOptiontransferselect.jsp      | 101 ---
 .../ui/lotsOfOptiontransferselectSubmit.jsp     | 103 ---
 .../src/main/webapp/tags/ui/moreSelects.jsp     |  69 ---
 .../main/webapp/tags/ui/moreSelectsSubmit.jsp   |  63 --
 .../main/webapp/tags/ui/staticTreeSelect.jsp    |  11 -
 .../main/webapp/tags/ui/timepicker/index.jsp    |  31 -
 .../webapp/tags/ui/treeExampleAjaxDynamic.ftl   |   9 -
 .../webapp/tags/ui/treeExampleAjaxDynamic.jsp   |  25 -
 .../main/webapp/tags/ui/treeExampleDynamic.jsp  |  54 --
 .../main/webapp/tags/ui/treeExampleStatic.jsp   |  61 --
 .../main/webapp/template/xhtml/mytemplate.jsp   |   9 -
 apps/showcase/src/main/webapp/tiles/body.ftl    |  16 -
 apps/showcase/src/main/webapp/tiles/body.jsp    |  24 -
 apps/showcase/src/main/webapp/tiles/header.jsp  |   3 -
 apps/showcase/src/main/webapp/tiles/layout.ftl  |  10 -
 apps/showcase/src/main/webapp/tiles/layout.jsp  |  13 -
 .../src/main/webapp/token/doublePost.jsp        |  28 -
 .../showcase/src/main/webapp/token/example1.jsp |  50 --
 .../showcase/src/main/webapp/token/example2.jsp |  38 --
 .../showcase/src/main/webapp/token/example3.jsp |  37 --
 .../showcase/src/main/webapp/token/example4.ftl |  40 --
 apps/showcase/src/main/webapp/token/index.jsp   |  48 --
 .../src/main/webapp/token/transferDone.jsp      |  48 --
 .../validation/clientSideValidationExample.jsp  |  64 --
 .../validation/fieldValidatorsExample.jsp       |  63 --
 .../src/main/webapp/validation/footer.jsp       |   8 -
 .../src/main/webapp/validation/index.jsp        |  51 --
 .../validation/nonFieldValidatorsExample.jsp    |  46 --
 .../src/main/webapp/validation/quiz-ajax.jsp    | 104 ----
 .../src/main/webapp/validation/quiz-basic.jsp   |  41 --
 .../main/webapp/validation/quiz-client-css.jsp  |  37 --
 .../src/main/webapp/validation/quiz-client.jsp  |  37 --
 .../src/main/webapp/validation/quiz-success.jsp |  27 -
 .../storeErrorsAcrossRequestCancel.jsp          |  30 -
 .../storeErrorsAcrossRequestExample.jsp         |  54 --
 .../validation/storeErrorsAcrossRequestOk.jsp   |  31 -
 .../successClientSideValidationExample.jsp      |  64 --
 .../successFieldValidatorsExample.jsp           |  61 --
 .../successNonFieldValidatorsExample.jsp        |  45 --
 .../successVisitorValidatorsExample.jsp         |  46 --
 .../validation/visitorValidatorsExample.jsp     |  43 --
 apps/showcase/src/main/webapp/viewSource.jsp    |  54 --
 apps/showcase/src/main/webapp/wait/complete.jsp |  25 -
 apps/showcase/src/main/webapp/wait/example1.jsp |  28 -
 apps/showcase/src/main/webapp/wait/example2.jsp |  29 -
 apps/showcase/src/main/webapp/wait/example3.jsp |  29 -
 apps/showcase/src/main/webapp/wait/index.jsp    |  34 -
 apps/showcase/src/main/webapp/wait/wait.jsp     |  53 --
 apps/showcase/src/main/webapp/xslt/index.jsp    |  26 -
 421 files changed, 9361 insertions(+), 9361 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-actionchaining.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-actionchaining.xml b/apps/showcase/src/main/resources/struts-actionchaining.xml
index bdefeb0..94d8b28 100644
--- a/apps/showcase/src/main/resources/struts-actionchaining.xml
+++ b/apps/showcase/src/main/resources/struts-actionchaining.xml
@@ -12,7 +12,7 @@
 			<result type="chain">actionChain3</result>
 		</action>
 		<action name="actionChain3" class="org.apache.struts2.showcase.actionchaining.ActionChain3">
-			<result>/actionchaining/actionChainingResult.jsp</result>
+			<result>/WEB-INF/actionchaining/actionChainingResult.jsp</result>
 		</action>
 	</package>
 </struts>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-ajax.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-ajax.xml b/apps/showcase/src/main/resources/struts-ajax.xml
index 910112c..43d0876 100644
--- a/apps/showcase/src/main/resources/struts-ajax.xml
+++ b/apps/showcase/src/main/resources/struts-ajax.xml
@@ -6,27 +6,27 @@
 <struts>
     <package name="ajax" extends="struts-default">
         <action name="AjaxTest" class="org.apache.struts2.showcase.ajax.AjaxTestAction">
-            <result>/ajax/AjaxResult.jsp</result>
+            <result>/WEB-INF/ajax/AjaxResult.jsp</result>
         </action>
 
         <action name="AjaxRemoteLink" class="org.apache.struts2.showcase.ajax.AjaxTestAction">
-            <result>/ajax/AjaxResult2.js</result>
+            <result>/WEB-INF/ajax/AjaxResult2.js</result>
         </action>
 
         <action name="AjaxRemoteForm" class="org.apache.struts2.showcase.ajax.AjaxTestAction">
-            <result>/ajax/AjaxResult3.jsp</result>
+            <result>/WEB-INF/ajax/AjaxResult3.jsp</result>
         </action>
 
         <action name="Test1">
-            <result>/ajax/remoteforms/test2.jsp</result>
+            <result>/WEB-INF/ajax/remoteforms/test2.jsp</result>
         </action>
 
         <action name="Test2">
-            <result>/ajax/remoteforms/test3.jsp</result>
+            <result>/WEB-INF/ajax/remoteforms/test3.jsp</result>
         </action>
 
         <action name="Test3">
-            <result>/ajax/testjs.jsp</result>
+            <result>/WEB-INF/ajax/testjs.jsp</result>
         </action>
 
         <action name="JSONList">
@@ -34,54 +34,54 @@
         </action>
 
         <action name="tree">
-            <result>/ajax/tree/tree.jsp</result>
+            <result>/WEB-INF/ajax/tree/tree.jsp</result>
         </action>
 
         <action name="getCategory" class="org.apache.struts2.showcase.ajax.tree.GetCategory">
-            <result>/ajax/tree/getCategory.jsp</result>
+            <result>/WEB-INF/ajax/tree/getCategory.jsp</result>
         </action>
 
         <action name="toggle" class="org.apache.struts2.showcase.ajax.tree.Toggle">
-            <result>/ajax/tree/toggle.jsp</result>
+            <result>/WEB-INF/ajax/tree/toggle.jsp</result>
         </action>
 
         <action name="example4">
-        	<result type="freemarker">/ajax/tabbedpanel/example4.ftl</result>
+        	<result type="freemarker">/WEB-INF/ajax/tabbedpanel/example4.ftl</result>
         </action>
 
         <action name="example5" class="org.apache.struts2.showcase.ajax.Example5Action">
-        	<result name="input">/ajax/tabbedpanel/example5.jsp</result>
-        	<result>/ajax/tabbedpanel/example5Ok.jsp</result>
+        	<result name="input">/WEB-INF/ajax/tabbedpanel/example5.jsp</result>
+        	<result>/WEB-INF/ajax/tabbedpanel/example5Ok.jsp</result>
         </action>
     </package>
 
     <package name="ajaxNoDecorate" namespace="/nodecorate" extends="json-default">
     	<!--  example 4 -->
         <action name="panel1" class="org.apache.struts2.showcase.ajax.Example4ShowPanelAction" method="panel1">
-    		<result type="freemarker">/ajax/tabbedpanel/nodecorate/panel1.ftl</result>
+    		<result type="freemarker">/WEB-INF/ajax/tabbedpanel/nodecorate/panel1.ftl</result>
     	</action>
     	<action name="panel2">
-    		<result type="freemarker">/ajax/tabbedpanel/nodecorate/panel2.ftl</result>
+    		<result type="freemarker">/WEB-INF/ajax/tabbedpanel/nodecorate/panel2.ftl</result>
     	</action>
     	<action name="panel3">
-    		<result type="freemarker">/ajax/tabbedpanel/nodecorate/panel3.ftl</result>
+    		<result type="freemarker">/WEB-INF/ajax/tabbedpanel/nodecorate/panel3.ftl</result>
     	</action>
     	<action name="panel2Submit" class="org.apache.struts2.showcase.ajax.Example4ShowPanelAction" method="panel2">
-    		<result type="freemarker">/ajax/tabbedpanel/nodecorate/panel2Submit.ftl</result>
+    		<result type="freemarker">/WEB-INF/ajax/tabbedpanel/nodecorate/panel2Submit.ftl</result>
     	</action>
     	<action name="panel3Submit" class="org.apache.struts2.showcase.ajax.Example4ShowPanelAction" method="panel3">
-    		<result type="freemarker">/ajax/tabbedpanel/nodecorate/panel3Submit.ftl</result>
+    		<result type="freemarker">/WEB-INF/ajax/tabbedpanel/nodecorate/panel3Submit.ftl</result>
     	</action>
        <action name="AutocompleterExample" class="org.apache.struts2.showcase.ajax.AutocompleterExampleAction">
-           <result type="freemarker">/ajax/options.ftl</result>
+           <result type="freemarker">/WEB-INF/ajax/options.ftl</result>
        </action>
        <action name="quizAjax" class="org.apache.struts2.showcase.validation.QuizAction">
             <interceptor-ref name="jsonValidationWorkflowStack"/>
-            <result name="input">/validation/quiz-ajax.jsp</result>
-            <result>/validation/quiz-success.jsp</result>
+            <result name="input">/WEB-INF/validation/quiz-ajax.jsp</result>
+            <result>/WEB-INF/validation/quiz-success.jsp</result>
        </action>
        <action name="getNodes" class="org.apache.struts2.showcase.ShowAjaxDynamicTreeAction">
-            <result type="freemarker">/tags/ui/treeExampleAjaxDynamic.ftl</result>
+            <result type="freemarker">/WEB-INF/tags/ui/treeExampleAjaxDynamic.ftl</result>
         </action>
     </package>
 </struts>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-chat.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-chat.xml b/apps/showcase/src/main/resources/struts-chat.xml
index 568b71a..15ea15b 100644
--- a/apps/showcase/src/main/resources/struts-chat.xml
+++ b/apps/showcase/src/main/resources/struts-chat.xml
@@ -33,18 +33,18 @@
     </interceptors>
 
     <global-results>
-      <result name="login" type="freemarker">/chat/chatLogin.ftl</result>
+      <result name="login" type="freemarker">/WEB-INF/chat/chatLogin.ftl</result>
     </global-results>
 
     <action name="main">
       <interceptor-ref name="chatAuthentication" />
-      <result type="freemarker">/chat/roomSelection.ftl</result>
+      <result type="freemarker">/WEB-INF/chat/roomSelection.ftl</result>
     </action>
 
     <action name="login" class="chatLoginAction">
       <interceptor-ref name="defaultStack" />
       <result type="redirect">/chat/showRooms.action</result>
-      <result name="input" type="freemarker">/chat/chatLogin.ftl</result>
+      <result name="input" type="freemarker">/WEB-INF/chat/chatLogin.ftl</result>
     </action>
 
     <action name="logout" class="chatLogoutAction">
@@ -54,12 +54,12 @@
 
     <action name="showRooms">
       <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/roomSelection.ftl</result>
+      <result type="freemarker">/WEB-INF/chat/roomSelection.ftl</result>
     </action>
 
     <action name="enterRoom" class="enterRoomAction">
       <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/showRoom.ftl</result>
+      <result type="freemarker">/WEB-INF/chat/showRoom.ftl</result>
     </action>
 
     <action name="exitRoom" class="exitRoomAction">
@@ -100,35 +100,35 @@
 
     <action name="usersAvailable" class="usersAvailableAction">
       <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/usersAvailable.ftl</result>
+      <result type="freemarker">/WEB-INF/chat/usersAvailable.ftl</result>
     </action>
 
     <action name="roomsAvailable" class="roomsAvailableAction">
       <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/roomsAvailable.ftl</result>
+      <result type="freemarker">/WEB-INF/chat/roomsAvailable.ftl</result>
     </action>
 
     <action name="createRoom" class="crudRoomAction" method="create">
       <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/createRoom.ftl</result>
-      <result name="input" type="freemarker">/chat/createRoom.ftl</result>
+      <result type="freemarker">/WEB-INF/chat/createRoom.ftl</result>
+      <result name="input" type="freemarker">/WEB-INF/chat/createRoom.ftl</result>
     </action>
 
     <action name="messagesAvailableInRoom" class="messagesAvailableInRoomAction">
       <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/messagesAvailableInRoom.ftl</result>
-      <result name="input" type="freemarker">/chat/messagesAvailableInRoom.ftl</result>
+      <result type="freemarker">/WEB-INF/chat/messagesAvailableInRoom.ftl</result>
+      <result name="input" type="freemarker">/WEB-INF/chat/messagesAvailableInRoom.ftl</result>
     </action>
 
     <action name="sendMessageToRoom" class="sendMessageToRoomAction">
       <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/sendMessageToRoomResult.ftl</result>
-      <result name="input" type="freemarker">/chat/sendMessageToRoomResult.ftl</result>
+      <result type="freemarker">/WEB-INF/chat/sendMessageToRoomResult.ftl</result>
+      <result name="input" type="freemarker">/WEB-INF/chat/sendMessageToRoomResult.ftl</result>
     </action>
 
     <action name="usersAvailableInRoom" class="usersAvailableInRoomAction">
       <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/usersAvailableInRoom.ftl</result>
+      <result type="freemarker">/WEB-INF/chat/usersAvailableInRoom.ftl</result>
     </action>
   </package>
 </struts>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-conversion.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-conversion.xml b/apps/showcase/src/main/resources/struts-conversion.xml
index ad0b1a9..27dd687 100644
--- a/apps/showcase/src/main/resources/struts-conversion.xml
+++ b/apps/showcase/src/main/resources/struts-conversion.xml
@@ -9,65 +9,65 @@
 		<!-- Example populating a List inside an Action -->
 		<action name="enterPersonsInfo" method="input"
 				class="org.apache.struts2.showcase.conversion.PersonAction">
-			<result>enterPersonInfo.jsp</result>
+			<result>/WEB-INF/conversion/enterPersonInfo.jsp</result>
 		</action>
 		<action name="submitPersonInfo" method="submit"
 				class="org.apache.struts2.showcase.conversion.PersonAction">
-			<result>showPersonInfo.jsp</result>	
-			<result name="input">enterPersonInfo.jsp</result>
+			<result>/WEB-INF/conversion/showPersonInfo.jsp</result>
+			<result name="input">/WEB-INF/conversion/enterPersonInfo.jsp</result>
 		</action>
 		<action name="showPersonJspCode">
-			<result type="plainText">/conversion/enterPersonInfo.jsp</result>
+			<result type="plainText">/WEB-INF/conversion/enterPersonInfo.jsp</result>
 		</action>
 		<action name="showPersonActionJavaCode">
-			<result type="plainText">/conversion/PersonAction.java.txt</result>
+			<result type="plainText">/WEB-INF/conversion/PersonAction.java.txt</result>
 		</action>
 		<action name="showPersonJavaCode">
-			<result type="plainText">/conversion/Person.java.txt</result>
+			<result type="plainText">/WEB-INF/conversion/Person.java.txt</result>
 		</action>
 		
 		
 		<!-- Example populating a Set inside an Action -->
 		<action name="enterAddressesInfo" class="org.apache.struts2.showcase.conversion.AddressAction" method="input">
-			<result>enterAddressInfo.jsp</result>
+			<result>/WEB-INF/conversion/enterAddressInfo.jsp</result>
 		</action>
 		<action name="submitAddressesInfo" class="org.apache.struts2.showcase.conversion.AddressAction" method="submit">
-			<result>showAddressInfo.jsp</result>
-			<result name="input">enterAddressInfo.jsp</result>
+			<result>/WEB-INF/conversion/showAddressInfo.jsp</result>
+			<result name="input">/WEB-INF/conversion/enterAddressInfo.jsp</result>
 		</action>
 		<action name="showAddressJspCode">
-			<result type="plainText">/conversion/enterAddressInfo.jsp</result>
+			<result type="plainText">/WEB-INF/conversion/enterAddressInfo.jsp</result>
 		</action>
 		<action name="showAddressActionJavaCode">
-			<result type="plainText">/conversion/AddressAction.java.txt</result>
+			<result type="plainText">/WEB-INF/conversion/AddressAction.java.txt</result>
 		</action>
 		<action name="showAddressJavaCode">
-			<result type="plainText">/conversion/Address.java.txt</result>
+			<result type="plainText">/WEB-INF/conversion/Address.java.txt</result>
 		</action>
 		
 		
 		<!-- Example populating a List with Tiger 5 Enum  -->		
 		<action name="enterOperationEnumInfo" class="org.apache.struts2.showcase.conversion.OperationsEnumAction" method="input">
-			<result>enterOperations.jsp</result>
+			<result>/WEB-INF/conversion/enterOperations.jsp</result>
 		</action>
 		<action name="submitOperationEnumInfo" class="org.apache.struts2.showcase.conversion.OperationsEnumAction" method="submit">
-			<result>showOperations.jsp</result>
-			<result name="input">enterOperations.jsp</result>
+			<result>/WEB-INF/conversion/showOperations.jsp</result>
+			<result name="input">/WEB-INF/conversion/enterOperations.jsp</result>
 		</action>
 		<action name="showEnumJspCode">
-			<result type="plainText">/conversion/enterOperations.jsp</result>
+			<result type="plainText">/WEB-INF/conversion/enterOperations.jsp</result>
 		</action>
 		<action name="showOperationsEnumJavaCode">
-			<result type="plainText">/conversion/OperationsEnum.java.txt</result>
+			<result type="plainText">/WEB-INF/conversion/OperationsEnum.java.txt</result>
 		</action>
 		<action name="showOperationEnumActionJavaCode">
-			<result type="plainText">/conversion/OperationsEnumAction.java.txt</result>
+			<result type="plainText">/WEB-INF/conversion/OperationsEnumAction.java.txt</result>
 		</action>
 		<action name="showEnumTypeConverterJavaCode">
-			<result type="plainText">/conversion/EnumTypeConverter.java.txt</result>
+			<result type="plainText">/WEB-INF/conversion/EnumTypeConverter.java.txt</result>
 		</action>
 		<action name="showOperationsEnumActionConversionProperties">
-			<result type="plainText">/conversion/OperationsEnumActionConversion.txt</result>
+			<result type="plainText">/WEB-INF/conversion/OperationsEnumActionConversion.txt</result>
 		</action>
 		
 	</package>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-fileupload.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-fileupload.xml b/apps/showcase/src/main/resources/struts-fileupload.xml
index 7107182..5a81f61 100644
--- a/apps/showcase/src/main/resources/struts-fileupload.xml
+++ b/apps/showcase/src/main/resources/struts-fileupload.xml
@@ -7,29 +7,29 @@
 	<package name="fileupload" extends="struts-default" namespace="/fileupload">
         
         <action name="upload" class="org.apache.struts2.showcase.fileupload.FileUploadAction" method="input">
-			<result>upload.jsp</result>
+			<result>/WEB-INF/fileupload/upload.jsp</result>
 		</action>
 
         <action name="doUpload" class="org.apache.struts2.showcase.fileupload.FileUploadAction" method="upload">
-        	<result name="input">upload.jsp</result>
-			<result>upload-success.jsp</result>
+        	<result name="input">/WEB-INF/fileupload/upload.jsp</result>
+			<result>/WEB-INF/fileupload/upload-success.jsp</result>
 		</action>
 		
 		<action name="multipleUploadUsingList">
-			<result>multipleUploadUsingList.jsp</result>
+			<result>/WEB-INF/fileupload/multipleUploadUsingList.jsp</result>
 		</action>
 		
 		<action name="doMultipleUploadUsingList" class="org.apache.struts2.showcase.fileupload.MultipleFileUploadUsingListAction" method="upload">
-			<result>multiple-success.jsp</result>
+			<result>/WEB-INF/fileupload/multiple-success.jsp</result>
 		</action>
 
 
 		<action name="multipleUploadUsingArray">
-			<result>multipleUploadUsingArray.jsp</result>
+			<result>/WEB-INF/fileupload/multipleUploadUsingArray.jsp</result>
 		</action>
 
 		<action name="doMultipleUploadUsingArray" class="org.apache.struts2.showcase.fileupload.MultipleFileUploadUsingArrayAction" method="upload">
-			<result>multiple-success.jsp</result>
+			<result>/WEB-INF/fileupload/multiple-success.jsp</result>
 		</action>
 
 

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-freemarker.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-freemarker.xml b/apps/showcase/src/main/resources/struts-freemarker.xml
index ae9334f..8c70421 100644
--- a/apps/showcase/src/main/resources/struts-freemarker.xml
+++ b/apps/showcase/src/main/resources/struts-freemarker.xml
@@ -6,11 +6,11 @@
 <struts>
     <package name="freemarker" namespace="/freemarker" extends="struts-default">
         <action name="customFreemarkerManagerDemo">
-            <result type="freemarker">/freemarker/customFreemarkerManagerUsage.ftl</result>
+            <result type="freemarker">/WEB-INF/freemarker/customFreemarkerManagerUsage.ftl</result>
         </action>
         
         <action name="standardTags" class="org.apache.struts2.showcase.freemarker.StandardTagsAction">
-            <result type="freemarker">/freemarker/standardTags.ftl</result>
+            <result type="freemarker">/WEB-INF/freemarker/standardTags.ftl</result>
         </action>
     </package>
 </struts>	

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-hangman.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-hangman.xml b/apps/showcase/src/main/resources/struts-hangman.xml
index 6c61a3d..69abdbf 100644
--- a/apps/showcase/src/main/resources/struts-hangman.xml
+++ b/apps/showcase/src/main/resources/struts-hangman.xml
@@ -6,19 +6,19 @@
 <struts>
 	<package name="hangman" extends="struts-default" namespace="/hangman">
 		<action name="hangmanAjax" class="startHangmanAction">
-			<result type="freemarker">/hangman/hangmanAjax.ftl</result>		
+			<result type="freemarker">/WEB-INF/hangman/hangmanAjax.ftl</result>
 		</action>
 		<action name="hangmanNonAjax" class="startHangmanAction">
-			<result type="freemarker">/hangman/hangmanNonAjax.ftl</result>
+			<result type="freemarker">/WEB-INF/hangman/hangmanNonAjax.ftl</result>
 		</action>
 		<action name="test">
 			<result type="freemarker">/hangman/test.ftl</result>
 		</action>
 		<action name="guessCharacter" class="guessCharacterAction">
-			<result type="freemarker">/hangman/blank.ftl</result>
+			<result type="freemarker">/WEB-INF/hangman/blank.ftl</result>
 		</action>
 		<action name="guessCharacterNonAjax" class="guessCharacterAction">
-			<result type="freemarker">/hangman/hangmanNonAjax.ftl</result>
+			<result type="freemarker">/WEB-INF/hangman/hangmanNonAjax.ftl</result>
 		</action>
 	</package>
 	
@@ -26,19 +26,19 @@
 	
 	<package name="hangman-ajax" extends="struts-default" namespace="/hangman/ajax">
 		<action name="blank">
-			<result type="freemarker">/hangman/blank.ftl</result>
+			<result type="freemarker">/WEB-INF/hangman/blank.ftl</result>
 		</action>
 		<action name="updateVocabCharacters" class="getUpdatedHangmanAction">
-			<result type="freemarker">/hangman/updateVocabCharacters.ftl</result>
+			<result type="freemarker">/WEB-INF/hangman/updateVocabCharacters.ftl</result>
 		</action>
 		<action name="updateCharacterAvailable" class="getUpdatedHangmanAction">
-			<result type="freemarker">/hangman/updateCharacterAvailable.ftl</result>
+			<result type="freemarker">/WEB-INF/hangman/updateCharacterAvailable.ftl</result>
 		</action>
 		<action name="updateScaffold" class="getUpdatedHangmanAction">
-			<result type="freemarker">/hangman/updateScaffold.ftl</result>
+			<result type="freemarker">/WEB-INF/hangman/updateScaffold.ftl</result>
 		</action>
 		<action name="updateGuessLeft" class="getUpdatedHangmanAction">
-			<result type="freemarker">/hangman/updateGuessLeft.ftl</result>
+			<result type="freemarker">/WEB-INF/hangman/updateGuessLeft.ftl</result>
 		</action>
 	</package>
 </struts>	

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-integration.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-integration.xml b/apps/showcase/src/main/resources/struts-integration.xml
index 71d2776..d251f72 100644
--- a/apps/showcase/src/main/resources/struts-integration.xml
+++ b/apps/showcase/src/main/resources/struts-integration.xml
@@ -39,8 +39,8 @@
     <action name="saveGangster" class="org.apache.struts2.s1.Struts1Action">
       <param name="className">org.apache.struts2.showcase.integration.SaveGangsterAction</param>
       <param name="validate">true</param>
-      <result name="input">modelDriven.jsp</result>
-      <result>modelDrivenResult.jsp</result>
+      <result name="input">/WEB-INF/integration/modelDriven.jsp</result>
+      <result>/WEB-INF/integration/modelDrivenResult.jsp</result>
     </action>
 
   </package>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-interactive.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-interactive.xml b/apps/showcase/src/main/resources/struts-interactive.xml
index 4c1d801..424aabb 100644
--- a/apps/showcase/src/main/resources/struts-interactive.xml
+++ b/apps/showcase/src/main/resources/struts-interactive.xml
@@ -9,7 +9,7 @@
             <interceptor-ref name="params"/>
             <interceptor-ref name="debugging"/>
             <interceptor-ref name="annotationWorkflow" />
-            <result>/interactive/demo.jsp</result>
+            <result>/WEB-INF/interactive/demo.jsp</result>
         </action>
         <action name="example" class="org.apache.struts2.showcase.action.ExampleAction" />
     </package>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-model-driven.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-model-driven.xml b/apps/showcase/src/main/resources/struts-model-driven.xml
index cc085d1..dc9b839 100644
--- a/apps/showcase/src/main/resources/struts-model-driven.xml
+++ b/apps/showcase/src/main/resources/struts-model-driven.xml
@@ -7,12 +7,12 @@
 	<package name="modelDriven" extends="struts-default" namespace="/modelDriven">
 	    <!-- Diplay entry page that uses Model-Driven technique -->
 		<action name="modelDriven" class="org.apache.struts2.showcase.modelDriven.ModelDrivenAction" method="input">
-			<result>modelDriven.jsp</result>
+			<result>/WEB-INF/modelDriven/modelDriven.jsp</result>
 		</action>
 		
 		<!-- Display the result page whose content is populated using the Model-Driven technique -->
 		<action name="modelDrivenResult" class="org.apache.struts2.showcase.modelDriven.ModelDrivenAction">
-			<result>modelDrivenResult.jsp</result>
+			<result>/WEB-INF/modelDriven/modelDrivenResult.jsp</result>
 		</action>
 	</package>
 </struts>	

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-tags-non-ui.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-tags-non-ui.xml b/apps/showcase/src/main/resources/struts-tags-non-ui.xml
index 20c5a8d..c296fd2 100644
--- a/apps/showcase/src/main/resources/struts-tags-non-ui.xml
+++ b/apps/showcase/src/main/resources/struts-tags-non-ui.xml
@@ -11,19 +11,19 @@
 	
 	<package name="actionTag" extends="struts-default" namespace="/tags/non-ui/actionTag">
 		<action name="showActionTagDemo" class="org.apache.struts2.showcase.tag.nonui.actiontag.ActionTagDemo" method="show">
-			<result>/tags/non-ui/actionTag/showActionTagDemo.jsp</result>
+			<result>/WEB-INF/tags/non-ui/actionTag/showActionTagDemo.jsp</result>
 		</action>
 		<action name="includePage" class="org.apache.struts2.showcase.tag.nonui.actiontag.ActionTagDemo" method="doInclude">
-			<result>/tags/non-ui/actionTag/includedPage.jsp</result>
+			<result>/WEB-INF/tags/non-ui/actionTag/includedPage.jsp</result>
 		</action>
 		<action name="includePage2">
-			<result>/tags/non-ui/actionTag/includedPage2.jsp</result>
+			<result>/WEB-INF/tags/non-ui/actionTag/includedPage2.jsp</result>
 		</action>
 		<action name="includePage3">
-			<result>/tags/non-ui/actionTag/includedPage3.jsp</result>
+			<result>/WEB-INF/tags/non-ui/actionTag/includedPage3.jsp</result>
 		</action>
 		<action name="lookAtSource">
-			<result type="plainText">/tags/non-ui/actionTag/showActionTagDemo.jsp</result>
+			<result type="plainText">/WEB-INF/tags/non-ui/actionTag/showActionTagDemo.jsp</result>
 		</action>
 	</package>
 	
@@ -33,11 +33,11 @@
 	
 	<package name="iteratorGeneratorTag" extends="struts-default" namespace="/tags/non-ui/iteratorGeneratorTag">
 		<action name="showGeneratorTagDemo" class="org.apache.struts2.showcase.tag.nonui.iteratortag.IteratorGeneratorTagDemo" method="input">
-			<result>/tags/non-ui/iteratorTag/showIteratorGeneratorTagDemo.jsp</result>
+			<result>/WEB-INF/tags/non-ui/iteratorTag/showIteratorGeneratorTagDemo.jsp</result>
 		</action>
 		<action name="submitGeneratorTagDemo" class="org.apache.struts2.showcase.tag.nonui.iteratortag.IteratorGeneratorTagDemo" method="submit">
-			<result name="input">/tags/non-ui/iteratorTag/showIteratorGeneratorTagDemo.jsp</result>
-			<result>/tags/non-ui/iteratorTag/iteratorGeneratorTagDemoResult.jsp</result>
+			<result name="input">/WEB-INF/tags/non-ui/iteratorTag/showIteratorGeneratorTagDemo.jsp</result>
+			<result>/WEB-INF/tags/non-ui/iteratorTag/iteratorGeneratorTagDemoResult.jsp</result>
 		</action>
 	</package>
 	
@@ -47,11 +47,11 @@
 	<!-- ========================================== -->
 	<package name="appendIteratorTag" extends="struts-default" namespace="/tags/non-ui/appendIteratorTag">
 		<action name="showAppendTagDemo" class="org.apache.struts2.showcase.tag.nonui.iteratortag.AppendIteratorTagDemo" method="input">
-			<result>/tags/non-ui/iteratorTag/showAppendIteratorTagDemo.jsp</result>
+			<result>/WEB-INF/tags/non-ui/iteratorTag/showAppendIteratorTagDemo.jsp</result>
 		</action>
 		<action name="submitAppendTagDemo" class="org.apache.struts2.showcase.tag.nonui.iteratortag.AppendIteratorTagDemo" method="submit">
-			<result name="input">/tag/non-ui/iteratorTag/showAppendIteratorTagDemo.jsp</result>
-			<result>/tags/non-ui/iteratorTag/appendIteratorTagDemoResult.jsp</result>
+			<result name="input">/WEB-INF/tags/non-ui/iteratorTag/showAppendIteratorTagDemo.jsp</result>
+			<result>/WEB-INF/tags/non-ui/iteratorTag/appendIteratorTagDemoResult.jsp</result>
 		</action>
 	</package>
 	
@@ -61,11 +61,11 @@
 	<!-- ========================================= -->
 	<package name="mergeIteratorTag" extends="struts-default" namespace="/tags/non-ui/mergeIteratorTag">
 		<action name="showMergeTagDemo" class="org.apache.struts2.showcase.tag.nonui.iteratortag.MergeIteratorTagDemo" method="input">
-			<result>/tags/non-ui/iteratorTag/showMergeIteratorTagDemo.jsp</result>
+			<result>/WEB-INF/tags/non-ui/iteratorTag/showMergeIteratorTagDemo.jsp</result>
 		</action>
 		<action name="submitMergeTagDemo" class="org.apache.struts2.showcase.tag.nonui.iteratortag.MergeIteratorTagDemo" method="submit">
-			<result name="input">/tags/non-ui/iteratorTag/showMergeIteratorTagDemo.jsp</result>
-			<result>/tags/non-ui/iteratorTag/mergeIteratorTagDemoResult.jsp</result>
+			<result name="input">/WEB-INF/tags/non-ui/iteratorTag/showMergeIteratorTagDemo.jsp</result>
+			<result>/WEB-INF/tags/non-ui/iteratorTag/mergeIteratorTagDemoResult.jsp</result>
 		</action>
 	</package>
 	
@@ -74,11 +74,11 @@
 	<!-- =========================================== -->
 	<package name="subsetIteratorTag" extends="struts-default" namespace="/tags/non-ui/subsetIteratorTag">
 		<action name="showSubsetTagDemo" class="org.apache.struts2.showcase.tag.nonui.iteratortag.SubsetIteratorTagDemo" method="input">
-			<result>/tags/non-ui/iteratorTag/subsetIteratorTagDemo.jsp</result>
+			<result>/WEB-INF/tags/non-ui/iteratorTag/subsetIteratorTagDemo.jsp</result>
 		</action>
 		<action name="submitSubsetTagDemo" class="org.apache.struts2.showcase.tag.nonui.iteratortag.SubsetIteratorTagDemo" method="submit">
-			<result name="input">/tags/non-ui/iteratorTag/subsetIteratorTagDemo.jsp</result>
-			<result>/tags/non-ui/iteratorTag/subsetIteratorTagDemoResult.jsp</result>
+			<result name="input">/WEB-INF/tags/non-ui/iteratorTag/subsetIteratorTagDemo.jsp</result>
+			<result>/WEB-INF/tags/non-ui/iteratorTag/subsetIteratorTagDemoResult.jsp</result>
 		</action>
 	</package>
 	
@@ -87,28 +87,28 @@
 	<!-- ========================================= -->
 	<package name="actionPrefix" extends="struts-default" namespace="/tags/non-ui/actionPrefix">
 		<action name="actionPrefixExampleUsingFreemarker">
-			<result type="freemarker">/tags/non-ui/actionPrefix/actionPrefixExample.ftl</result>
+			<result type="freemarker">/WEB-INF/tags/non-ui/actionPrefix/actionPrefixExample.ftl</result>
 		</action>	
 		<action name="submit" class="org.apache.struts2.showcase.tag.nonui.actionPrefix.SubmitAction">
-			<result type="freemarker">/tags/non-ui/actionPrefix/normalSubmit.ftl</result>
+			<result type="freemarker">/WEB-INF/tags/non-ui/actionPrefix/normalSubmit.ftl</result>
 		</action>
 		<action name="submit" class="org.apache.struts2.showcase.tag.nonui.actionPrefix.SubmitAction" method="alternateMethod">
-			<result name="methodPrefixResult" type="freemarker">/tags/non-ui/actionPrefix/methodPrefix.ftl</result>
+			<result name="methodPrefixResult" type="freemarker">/WEB-INF/tags/non-ui/actionPrefix/methodPrefix.ftl</result>
 		</action>
 		<action name="actionPrefix" class="org.apache.struts2.showcase.tag.nonui.actionPrefix.SubmitAction">
-			<result type="freemarker">/tags/non-ui/actionPrefix/actionPrefix.ftl</result>
+			<result type="freemarker">/WEB-INF/tags/non-ui/actionPrefix/actionPrefix.ftl</result>
 		</action>
 		<action name="redirectPrefix">
-			<result type="freemarker">/tags/non-ui/actionPrefix/redirectPrefix.ftl</result>
+			<result type="freemarker">/WEB-INF/tags/non-ui/actionPrefix/redirectPrefix.ftl</result>
 		</action>
 		<action name="redirectActionPrefix">
-			<result type="freemarker">/tags/non-ui/actionPrefix/redirectActionPrefix.ftl</result>
+			<result type="freemarker">/WEB-INF/tags/non-ui/actionPrefix/redirectActionPrefix.ftl</result>
 		</action>
         <action name="redirectActionPrefixAction">
             <result type="redirect">redirectActionPrefix</result>
         </action>
 		<action name="viewSource">
-			<result type="plainText">/tags/non-ui/actionPrefix/actionPrefixExample.ftl</result>
+			<result type="plainText">/WEB-INF/tags/non-ui/actionPrefix/actionPrefixExample.ftl</result>
 		</action>
 	</package>
 	
@@ -117,10 +117,10 @@
 	<!--  ========================================== -->
 	<package name="ifTagPackage" extends="struts-default" namespace="/tags/non-ui/ifTag">
 		<action name="testIfTagJsp">
-			<result>/tags/non-ui/ifTag/testIf.jsp</result>
+			<result>/WEB-INF/tags/non-ui/ifTag/testIf.jsp</result>
 		</action>
 		<action name="testIfTagFreemarker">
-			<result type="freemarker">/tags/non-ui/ifTag/testIf.ftl</result>
+			<result type="freemarker">/WEB-INF/tags/non-ui/ifTag/testIf.ftl</result>
 		</action>
 	</package>
 
@@ -129,7 +129,7 @@
     <!--  ========================================== -->
     <package name="debugTagPackage" extends="struts-default" namespace="/tags/non-ui">
         <action name="debugTagDemo">
-            <result>/tags/non-ui/debug.jsp</result>
+            <result>/WEB-INF/tags/non-ui/debug.jsp</result>
         </action>
     </package>
 </struts>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-tags-ui.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-tags-ui.xml b/apps/showcase/src/main/resources/struts-tags-ui.xml
index 449958f..563fbc1 100644
--- a/apps/showcase/src/main/resources/struts-tags-ui.xml
+++ b/apps/showcase/src/main/resources/struts-tags-ui.xml
@@ -6,57 +6,57 @@
 <struts>
     <package name="ui-tags" extends="struts-default" namespace="/tags/ui">
         <action name="example" class="org.apache.struts2.showcase.UITagExample">
-            <result>example.jsp</result>
-            <result name="input">example.jsp</result>
+            <result>/WEB-INF/tags/ui/example.jsp</result>
+            <result name="input">/WEB-INF/tags/ui/example.jsp</result>
         </action>
         <action name="exampleSubmit" class="org.apache.struts2.showcase.UITagExample" method="doSubmit">
-        	<result>exampleSubmited.jsp</result>
-        	<result name="input">example.jsp</result>
+        	<result>/WEB-INF/tags/ui/exampleSubmited.jsp</result>
+        	<result name="input">/WEB-INF/tags/ui/example.jsp</result>
         </action>
         <action name="exampleVelocity" class="org.apache.struts2.showcase.UITagExample">
-            <result type="velocity">example.vm</result>
-            <result name="input" type="velocity">example.vm</result>
+            <result type="velocity">/WEB-INF/tags/ui/example.vm</result>
+            <result name="input" type="velocity">/WEB-INF/tags/ui/example.vm</result>
         </action>
         <action name="exampleSubmitVelocity" class="org.apache.struts2.showcase.UITagExample" method="doSubmit">
-        	<result type="velocity">exampleSubmited.vm</result>
-        	<result name="input" type="velocity">example.vm</result>
+        	<result type="velocity">/WEB-INF/tags/ui/exampleSubmited.vm</result>
+        	<result name="input" type="velocity">/WEB-INF/tags/ui/example.vm</result>
         </action>
 
         <action name="lotsOfOptiontransferselect" class="org.apache.struts2.showcase.LotsOfOptiontransferselectAction" method="input">
-        	<result>lotsOfOptiontransferselect.jsp</result>
+        	<result>/WEB-INF/tags/ui/lotsOfOptiontransferselect.jsp</result>
         </action>
         <action name="lotsOfOptiontransferselectSubmit" class="org.apache.struts2.showcase.LotsOfOptiontransferselectAction" method="submit">
-        	<result name="input">lotsOfOptiontransferselect.jsp</result>
-        	<result>lotsOfOptiontransferselectSubmit.jsp</result>
+        	<result name="input">/WEB-INF/tags/ui/lotsOfOptiontransferselect.jsp</result>
+        	<result>/WEB-INF/tags/ui/lotsOfOptiontransferselectSubmit.jsp</result>
         </action>
 
          <action name="moreSelects" class="org.apache.struts2.showcase.MoreSelectsAction" method="input">
-        	<result>moreSelects.jsp</result>
+        	<result>/WEB-INF/tags/ui/moreSelects.jsp</result>
         </action>
         <action name="moreSelectsSubmit" class="org.apache.struts2.showcase.MoreSelectsAction" method="submit">
-        	<result name="input">moreSelects.jsp</result>
-        	<result>moreSelectsSubmit.jsp</result>
+        	<result name="input">/WEB-INF/tags/ui/moreSelects.jsp</result>
+        	<result>/WEB-INF/tags/ui/moreSelectsSubmit.jsp</result>
         </action>
 
         <!--  START SNIPPET: treeExampleDynamicXWorkXml -->
 
         <action name="showDynamicTreeAction" class="org.apache.struts2.showcase.ShowDynamicTreeAction">
-        	<result>/tags/ui/treeExampleDynamic.jsp</result>
+        	<result>/WEB-INF/tags/ui/treeExampleDynamic.jsp</result>
         </action>
 
         <!--  END SNIPPET: treeExampleDynamicXWorkXml -->
 
         <action name="showDynamicAjaxTreeAction">
-            <result>/tags/ui/treeExampleAjaxDynamic.jsp</result>
+            <result>/WEB-INF/tags/ui/treeExampleAjaxDynamic.jsp</result>
         </action>
 
         <action name="showComponentTagExampleCode">
-        	<result type="plainText">/tags/ui/componentTagExample.jsp</result>
+        	<result type="plainText">/WEB-INF/tags/ui/componentTagExample.jsp</result>
         </action>
 
         <action name="actionTagExample">
-            <result>/tags/ui/actionTagExampleCalled.jsp</result>
-            <result name="input">/tags/ui/actionTagExampleCalling.jsp</result>
+            <result>/WEB-INF/tags/ui/actionTagExampleCalled.jsp</result>
+            <result name="input">/WEB-INF/tags/ui/actionTagExampleCalling.jsp</result>
         </action>
 	</package>
 
@@ -65,10 +65,10 @@
 	<package name="ui-tags-ajax" namespace="/tags/ui/ajax" extends="struts-default">
         <!-- Actions dealing with Tree Example  -->
         <action name="staticTreeSelectAction">
-        	<result>/tags/ui/staticTreeSelect.jsp</result>
+        	<result>/WEB-INF/tags/ui/staticTreeSelect.jsp</result>
         </action>
         <action name="dynamicTreeSelectAction" class="org.apache.struts2.showcase.DynamicTreeSelectAction">
-        	<result>/tags/ui/dynamicTreeSelect.jsp</result>
+        	<result>/WEB-INF/tags/ui/dynamicTreeSelect.jsp</result>
         </action>
     </package>
 

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-tiles.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-tiles.xml b/apps/showcase/src/main/resources/struts-tiles.xml
index d749d77..9fbe025 100644
--- a/apps/showcase/src/main/resources/struts-tiles.xml
+++ b/apps/showcase/src/main/resources/struts-tiles.xml
@@ -21,7 +21,7 @@
         </action>
 
         <action name="sanity">
-            <result type="redirect">/tiles/layout.jsp</result>
+            <result type="redirect">/WEB-INF/tiles/layout.jsp</result>
             <result type="redirect" name="success">/tiles/layout.jsp</result>
         </action>
     </package>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-token.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-token.xml b/apps/showcase/src/main/resources/struts-token.xml
index 06f3477..d43435b 100644
--- a/apps/showcase/src/main/resources/struts-token.xml
+++ b/apps/showcase/src/main/resources/struts-token.xml
@@ -7,56 +7,56 @@
 
         <action name="tokenPrepare!*" class="org.apache.struts2.showcase.token.TokenAction" method="{1}">
             <interceptor-ref name="defaultStack"/>
-            <result name="input">example1.jsp</result>
+            <result name="input">/WEB-INF/token/example1.jsp</result>
         </action>
 
         <action name="transfer" class="org.apache.struts2.showcase.token.TokenAction">
             <interceptor-ref name="defaultStack"/>
             <interceptor-ref name="token"/>
-            <result name="invalid.token">doublePost.jsp</result>
-            <result name="success">transferDone.jsp</result>
+            <result name="invalid.token">/WEB-INF/token/doublePost.jsp</result>
+            <result name="success">/WEB-INF/token/transferDone.jsp</result>
         </action>
 
 
 
         <action name="tokenPrepare2!*" class="org.apache.struts2.showcase.token.TokenAction" method="{1}">
             <interceptor-ref name="defaultStack"/>
-            <result name="input">example2.jsp</result>
+            <result name="input">/WEB-INF/token/example2.jsp</result>
         </action>
 
         <action name="transfer2" class="org.apache.struts2.showcase.token.TokenAction">
             <interceptor-ref name="defaultStack"/>
             <interceptor-ref name="token"/>
-            <result name="invalid.token">doublePost.jsp</result>
-            <result name="success" type="redirect">transferDone.jsp</result>
+            <result name="invalid.token">/WEB-INF/token/doublePost.jsp</result>
+            <result name="success" type="redirect">/WEB-INF/token/transferDone.jsp</result>
         </action>
 
 
 
         <action name="tokenPrepare3!*" class="org.apache.struts2.showcase.token.TokenAction" method="{1}">
             <interceptor-ref name="defaultStack"/>
-            <result name="input">example3.jsp</result>
+            <result name="input">/WEB-INF/token/example3.jsp</result>
         </action>
 
         <action name="transfer3" class="org.apache.struts2.showcase.token.TokenAction">
             <interceptor-ref name="defaultStack"/>
             <interceptor-ref name="tokenSession"/>
-            <result name="invalid.token">doublePost.jsp</result>
-            <result name="success" type="redirect">transferDone.jsp</result>
+            <result name="invalid.token">/WEB-INF/token/doublePost.jsp</result>
+            <result name="success" type="redirect">/WEB-INF/token/transferDone.jsp</result>
         </action>
 
 
         <action name="tokenPrepare4!*" class="org.apache.struts2.showcase.token.TokenAction" method="{1}">
             <interceptor-ref name="defaultStack"/>
             <interceptor-ref name="createSession"/> <!-- we must have a session when using freemarker and the @s.token tag -->
-            <result name="input" type="freemarker">example4.ftl</result>
+            <result name="input" type="freemarker">/WEB-INF/token/example4.ftl</result>
         </action>
 
         <action name="transfer4" class="org.apache.struts2.showcase.token.TokenAction">
             <interceptor-ref name="defaultStack"/>
             <interceptor-ref name="token"/>
-            <result name="invalid.token">doublePost.jsp</result>
-            <result name="success">transferDone.jsp</result>
+            <result name="invalid.token">/WEB-INF/token/doublePost.jsp</result>
+            <result name="success">/WEB-INF/token/transferDone.jsp</result>
         </action>
 
     </package>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-validation.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-validation.xml b/apps/showcase/src/main/resources/struts-validation.xml
index 5351b1e..778a210 100755
--- a/apps/showcase/src/main/resources/struts-validation.xml
+++ b/apps/showcase/src/main/resources/struts-validation.xml
@@ -40,12 +40,12 @@
 		<!-- ======================== -->
 		
 		<action name="showFieldValidatorsExamples" class="org.apache.struts2.showcase.validation.FieldValidatorsExampleAction" method="input">
-			<result name="input" type="dispatcher">/validation/fieldValidatorsExample.jsp</result>
+			<result name="input" type="dispatcher">/WEB-INF/validation/fieldValidatorsExample.jsp</result>
 		</action>
 		
 		<action name="submitFieldValidatorsExamples" class="org.apache.struts2.showcase.validation.FieldValidatorsExampleAction" method="submit">
-			<result name="input" type="dispatcher">/validation/fieldValidatorsExample.jsp</result>
-			<result type="dispatcher">/validation/successFieldValidatorsExample.jsp</result>
+			<result name="input" type="dispatcher">/WEB-INF/validation/fieldValidatorsExample.jsp</result>
+			<result type="dispatcher">/WEB-INF/validation/successFieldValidatorsExample.jsp</result>
 		</action>
 		
 		
@@ -55,12 +55,12 @@
 		<!-- ============================ -->
 		
 		<action name="showNonFieldValidatorsExamples" class="org.apache.struts2.showcase.validation.NonFieldValidatorsExampleAction" method="input">
-			<result name="input">/validation/nonFieldValidatorsExample.jsp</result>		
+			<result name="input">/WEB-INF/validation/nonFieldValidatorsExample.jsp</result>
 		</action>
 		
 		<action name="submitNonFieldValidatorsExamples" class="org.apache.struts2.showcase.validation.NonFieldValidatorsExampleAction" method="submit">
-			<result name="input">/validation/nonFieldValidatorsExample.jsp</result>		
-			<result>/validation/successNonFieldValidatorsExample.jsp</result>
+			<result name="input">/WEB-INF/validation/nonFieldValidatorsExample.jsp</result>
+			<result>/WEB-INF/validation/successNonFieldValidatorsExample.jsp</result>
 		</action>
 		
 		
@@ -70,12 +70,12 @@
 		<!-- ========================== -->
 		
 		<action name="showVisitorValidatorsExamples" class="org.apache.struts2.showcase.validation.VisitorValidatorsExampleAction" method="input">
-			<result name="input">/validation/visitorValidatorsExample.jsp</result>
+			<result name="input">/WEB-INF/validation/visitorValidatorsExample.jsp</result>
 		</action>
 		
 		<action name="submitVisitorValidatorsExamples" class="org.apache.struts2.showcase.validation.VisitorValidatorsExampleAction" method="submit">
-			<result name="input">/validation/visitorValidatorsExample.jsp</result>
-			<result>/validation/successVisitorValidatorsExample.jsp</result>
+			<result name="input">/WEB-INF/validation/visitorValidatorsExample.jsp</result>
+			<result>/WEB-INF/validation/successVisitorValidatorsExample.jsp</result>
 		</action>
 
 
@@ -85,12 +85,12 @@
 		<!-- ========================== -->
 
 		<action name="clientSideValidationExample" class="org.apache.struts2.showcase.validation.FieldValidatorsExampleAction" method="input">
-			<result name="input">/validation/clientSideValidationExample.jsp</result>
+			<result name="input">/WEB-INF/validation/clientSideValidationExample.jsp</result>
 		</action>
 
 		<action name="submitClientSideValidationExample" class="org.apache.struts2.showcase.validation.FieldValidatorsExampleAction" method="submit">
-			<result name="input">/validation/clientSideValidationExample.jsp</result>
-			<result>/validation/successClientSideValidationExample.jsp</result>
+			<result name="input">/WEB-INF/validation/clientSideValidationExample.jsp</result>
+			<result>/WEB-INF/validation/successClientSideValidationExample.jsp</result>
 		</action>
 
 		<!-- =========================================== -->
@@ -109,16 +109,16 @@
 			<interceptor-ref name="store">
 				<param name="operationMode">RETRIEVE</param>
 			</interceptor-ref>
-			<result>/validation/storeErrorsAcrossRequestExample.jsp</result>
+			<result>/WEB-INF/validation/storeErrorsAcrossRequestExample.jsp</result>
 		</action>
 		<action name="applicationOk" class="org.apache.struts2.showcase.validation.SubmitApplication" method="applicationOk">
 			<interceptor-ref name="store">
 				<param name="operationMode">RETRIEVE</param>
 			</interceptor-ref>
-			<result>/validation/storeErrorsAcrossRequestOk.jsp</result>
+			<result>/WEB-INF/validation/storeErrorsAcrossRequestOk.jsp</result>
 		</action>
 		<action name="cancelApplication" class="org.apache.struts2.showcase.validation.SubmitApplication" method="cancelApplication">
-			<result>/validation/storeErrorsAcrossRequestCancel.jsp</result>
+			<result>/WEB-INF/validation/storeErrorsAcrossRequestCancel.jsp</result>
 		</action>
 		
     </package>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts-wait.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts-wait.xml b/apps/showcase/src/main/resources/struts-wait.xml
index 521c2c7..8ea2911 100644
--- a/apps/showcase/src/main/resources/struts-wait.xml
+++ b/apps/showcase/src/main/resources/struts-wait.xml
@@ -9,8 +9,8 @@
         <action name="longProcess1" class="org.apache.struts2.showcase.wait.LongProcessAction">
             <interceptor-ref name="defaultStack"/>
             <interceptor-ref name="execAndWait"/>
-            <result name="wait">wait.jsp</result>
-            <result name="success">complete.jsp</result>
+            <result name="wait">/WEB-INF/wait/wait.jsp</result>
+            <result name="success">/WEB-INF/wait/complete.jsp</result>
         </action>
 
         <action name="longProcess2" class="org.apache.struts2.showcase.wait.LongProcessAction">
@@ -18,8 +18,8 @@
             <interceptor-ref name="execAndWait">
                 <param name="delay">2000</param>
             </interceptor-ref>
-            <result name="wait">wait.jsp</result>
-            <result name="success">complete.jsp</result>
+            <result name="wait">/WEB-INF/wait/wait.jsp</result>
+            <result name="success">/WEB-INF/wait/complete.jsp</result>
         </action>
 
         <action name="longProcess3" class="org.apache.struts2.showcase.wait.LongProcessAction">
@@ -28,8 +28,8 @@
                 <param name="delay">3000</param>
                 <param name="delaySleepInterval">1000</param>
             </interceptor-ref>
-            <result name="wait">wait.jsp</result>
-            <result name="success">complete.jsp</result>
+            <result name="wait">/WEB-INF/wait/wait.jsp</result>
+            <result name="success">/WEB-INF/wait/complete.jsp</result>
         </action>
 
     </package>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/resources/struts.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/resources/struts.xml b/apps/showcase/src/main/resources/struts.xml
index 3c1ebf3..74c59c6 100644
--- a/apps/showcase/src/main/resources/struts.xml
+++ b/apps/showcase/src/main/resources/struts.xml
@@ -75,15 +75,15 @@
         <default-action-ref name="showcase" />
 
         <action name="showcase">
-            <result>showcase.jsp</result>
+            <result>../webapp/WEB-INF/showcase.jsp</result>
         </action>
 
         <action name="viewSource" class="org.apache.struts2.showcase.source.ViewSourceAction">
-            <result>viewSource.jsp</result>
+            <result>../webapp/WEB-INF/viewSource.jsp</result>
         </action>
 
         <action name="date" class="org.apache.struts2.showcase.DateAction" method="browse">
-            <result name="success">/date.jsp</result>
+            <result name="success">/WEB-INF/date.jsp</result>
         </action>
 
     </package>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/webapp/WEB-INF/actionchaining/actionChainingResult.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/actionchaining/actionChainingResult.jsp b/apps/showcase/src/main/webapp/WEB-INF/actionchaining/actionChainingResult.jsp
new file mode 100644
index 0000000..87566e8
--- /dev/null
+++ b/apps/showcase/src/main/webapp/WEB-INF/actionchaining/actionChainingResult.jsp
@@ -0,0 +1,23 @@
+<%@taglib prefix="s" uri="/struts-tags" %>
+
+<html>
+<head>
+    <title>Struts2 Showcase - Action Chaining Result</title>
+</head>
+<body>
+    <div class="page-header">
+	    <h1>Action Chaining Result:</h1>
+    </div>
+
+    <div class="container-fluid">
+	    <div class="row-fluid">
+		    <div class="span12">
+		        <s:label label="Action Chain 1 Property 1" name="actionChain1Property1" /><br/>
+                <s:label label="Action Chain 2 Property 1" name="actionChain2Property1" /><br/>
+                <s:label label="Action Chain 3 Property 1" name="actionChain3Property1" /><br/>
+		    </div>
+	    </div>
+    </div>
+</body>
+</html>
+

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult.jsp
new file mode 100644
index 0000000..3dc8521
--- /dev/null
+++ b/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult.jsp
@@ -0,0 +1,12 @@
+<%@ taglib prefix="s" uri="/struts-tags" %>
+
+<%
+    request.setAttribute("decorator", "none");
+    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
+    response.setHeader("Pragma","no-cache"); //HTTP 1.0
+    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
+%>
+
+Result: <s:property value="count"/> @ <s:property value="serverTime"/> 
+<br/>
+<s:property value="data"/>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult2.js
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult2.js b/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult2.js
new file mode 100644
index 0000000..537c390
--- /dev/null
+++ b/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult2.js
@@ -0,0 +1,2 @@
+alert('This JavaScript currently being evaluated is the result...');
+alert('... of an action executed on the server!');

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult3.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult3.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult3.jsp
new file mode 100644
index 0000000..45cb2b0
--- /dev/null
+++ b/apps/showcase/src/main/webapp/WEB-INF/ajax/AjaxResult3.jsp
@@ -0,0 +1,12 @@
+<%@ taglib prefix="s" uri="/struts-tags" %>
+
+<%
+    request.setAttribute("decorator", "none");
+    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
+    response.setHeader("Pragma","no-cache"); //HTTP 1.0
+    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
+%>
+
+Result: <s:property value="count"/> @ <s:property value="serverTime"/>
+
+The value you entered was: <s:property value="data"/><br/>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/webapp/WEB-INF/ajax/autocompleter/index.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/autocompleter/index.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/autocompleter/index.jsp
new file mode 100644
index 0000000..c67257f
--- /dev/null
+++ b/apps/showcase/src/main/webapp/WEB-INF/ajax/autocompleter/index.jsp
@@ -0,0 +1,178 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
+<html>
+<head>
+    <title>Ajax Examples</title>
+
+    <!--// START SNIPPET: common-include-->
+    <jsp:include page="/WEB-INF/ajax/commonInclude.jsplude.jsp"/>
+    <!--// END SNIPPET: common-include-->
+</head>
+
+<script type="text/javascript">
+   dojo.event.topic.subscribe("/before", function(event, widget){
+      alert('inside a topic event. before request');
+      //event: set event.cancel = true, to cancel request
+      //widget: widget that published the topic
+   });
+   
+   dojo.event.topic.subscribe("/after", function(data, request, widget){
+      alert('inside a topic event. after request');
+      //data : json object from request
+      //request: XMLHttpRequest object
+      //widget: widget that published the topic
+   });
+   
+   dojo.event.topic.subscribe("/value", function(error, request, widget){
+      alert('inside a topic event. on error');
+      //error : error object (error.message has the error message)
+      //request: XMLHttpRequest object
+      //widget: widget that published the topic
+   });
+   
+   function showKey() {
+      var autoCompleter = dojo.widget.byId('jsauto');
+      alert(autoCompleter.getSelectedKey());
+   }
+   
+   function showValue() {
+      var autoCompleter = dojo.widget.byId('jsauto');
+      alert(autoCompleter.getSelectedValue());
+   }
+</script>
+
+<body>
+
+
+<s:url var="jsonList" value="/JSONList.action"/>
+
+Using a JSON list returned from an action (href="/JSONList.action"), without autoComplete (autoComplete="false"), use indicator, search substring (searchType="substring")
+<br/>
+<sx:autocompleter 
+    indicator="indicator1" 
+    href="%{jsonList}" 
+    cssStyle="width: 200px;" 
+    autoComplete="false" 
+    searchType="substring"
+    name="state"/>
+<img id="indicator1" src="${pageContext.request.contextPath}/images/indicator.gif" alt="Loading..." style="display:none"/>
+
+<br/><br/>
+
+Reload on type (loadOnTextChange="true"), after 3 characters (loadMinimumCount="3", it is "3" by default), without the down arrow button (showDownArrow="false")
+<br/>
+<sx:autocompleter  
+    id="auto2"
+    indicator="indicator" 
+    href="%{jsonList}" 
+    cssStyle="width: 200px;" 
+    autoComplete="false" 
+    loadOnTextChange="true"
+    loadMinimumCount="3"
+    showDownArrow="false"/>
+<img id="indicator" src="${pageContext.request.contextPath}/images/indicator.gif" alt="Loading..." style="display:none"/>
+
+<br/><br/>
+
+Using a JSON list returned from an action (href="/JSONList.action"), with autoComplete (autoComplete="true")
+<br/>
+<sx:autocompleter  
+    name="auto3"
+    href="%{#jsonList}" 
+    cssStyle="width: 200px;" 
+    autoComplete="true" />
+
+<br/><br/>
+
+Using a local list (list="%{'apple','banana','grape','pear'}")
+<br/>
+<sx:autocompleter list="{'apple','banana','grape','pear'}" cssStyle="width: 150px;"/>
+
+<br/><br/>
+
+Force valid options (forceValidOption="true")
+<br/>
+<sx:autocompleter  
+    name="auto4"
+    href="%{#jsonList}" 
+    cssStyle="width: 200px;" 
+    forceValidOption="true"/>
+
+<br/>
+<br/>
+
+Make dropdown's height to 180px  (dropdownHeight="180")
+<br/>
+<sx:autocompleter
+    name="auto5"
+    href="%{#jsonList}" 
+    cssStyle="width: 200px;" 
+    dropdownHeight="180"/>
+
+<br/>
+<br/>
+
+Disabled combobox (disabled="true")
+<br/>
+<sx:autocompleter
+    name="auto6"
+    href="%{#jsonList}" 
+    cssStyle="width: 200px;" 
+    disabled="true"/>
+
+<br/>
+<br/>
+
+
+<s:url var="autoex" action="AutocompleterExample" namespace="/nodecorate"/>
+
+Link two autocompleter elements. When the selected value in 'Autocompleter 1' changes, the available values in 'Autocompleter 2' will change also.
+<br/>
+<form id="selectForm">
+  <p>
+    Autocompleter 1 
+    <sx:autocompleter  
+        name="select" 
+        list="{'fruits','colors'}" 
+        value="colors"
+        valueNotifyTopics="/Changed"
+        forceValidOption="true"/>
+  </p>
+</form>
+Autocompleter 2 
+<sx:autocompleter
+     name="auto8"
+     href="%{#autoex}"
+     autoComplete="false"
+     formId="selectForm"
+     listenTopics="/Changed"
+     forceValidOption="true" />
+
+<br/><br/>
+
+Publish before/after/value notify topics
+<br/>
+<sx:autocompleter 
+    name="auto9"
+    href="%{#jsonList}" 
+    listenTopics="/reload"
+    beforeNotifyTopics="/before"
+    afterNotifyTopics="/after"
+    valueNotifyTopics="/value"
+    cssStyle="width: 200px;" />
+<s:submit theme="simple" value="Reload Values" onclick="dojo.event.topic.publish('/reload')"/>
+
+<br/><br/>
+
+Get values using JavaScript
+<br/>
+<sx:autocompleter  href="%{#jsonList}"  id="jsauto" name="state"/>
+<s:submit theme="simple" value="Show Key" onclick="showKey()"/>
+<s:submit theme="simple" value="Show Value" onclick="showValue()"/>
+
+<br/><br/>
+
+<s:include value="../footer.jsp"/>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/webapp/WEB-INF/ajax/bind/index.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/bind/index.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/bind/index.jsp
new file mode 100644
index 0000000..046006c
--- /dev/null
+++ b/apps/showcase/src/main/webapp/WEB-INF/ajax/bind/index.jsp
@@ -0,0 +1,61 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
+
+<html>
+<head>
+    <title>Bind Examples</title>
+    <jsp:include page="/WEB-INF/ajax/commonInclude.jsp"/>
+</head>
+
+<script type="text/javascript">
+   dojo.event.topic.subscribe("/before", function(event, widget){
+      alert('inside a topic event. before request');
+      //event: set event.cancel = true, to cancel request
+      //widget: widget that published the topic
+   });
+   
+   dojo.event.topic.subscribe("/after", function(data, request, widget){
+      alert('inside a topic event. after request');
+      //data : text returned from request
+      //request: XMLHttpRequest object
+      //widget: widget that published the topic
+   });
+</script>
+
+<body>
+
+<div id="div1">Div 1</div>
+<s:url var="ajaxTest" value="/AjaxTest.action" />
+
+
+<br/><br/>
+<p>
+    1. Attach to "onclick" event on button. Update content of Div 1. Use with indicator.
+    <img id="indicator" src="${pageContext.request.contextPath}/images/indicator.gif" alt="Loading..." style="display:none"/>
+    <sx:bind href="%{#ajaxTest}" sources="button" targets="div1" events="onclick" indicator="indicator" />
+     <br/>
+    <s:submit theme="simple" type="submit" value="submit" id="button"/>
+</p>
+<br/><br/>
+<p>
+    2. Attach to "onmouseover", and "onclick" event on Area below and update content of Div1, highlight targets with green color
+    <sx:bind id="ex2" href="%{#ajaxTest}" sources="div2" targets="div1" events="onmouseover,onclick" highlightColor="green"/>
+    <div id="div2" style="width: 300px; height: 50px; border: 1px solid black">
+        Mouse Over or Click Here!
+    </div>
+</p>
+<br/><br/>
+<p>
+    3. Attach to "onkeydown" event on Textbox below update content of Div1. Publish topics.
+    <sx:bind id="ex4" href="%{#ajaxTest}" sources="txt1" targets="div1" events="onkeydown" beforeNotifyTopics="/before" afterNotifyTopics="/after" />
+    <br/>
+    <s:textfield id="txt1"/>
+</p>
+
+
+<br/><br/>
+<s:include value="../footer.jsp"/>
+
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/webapp/WEB-INF/ajax/commonInclude.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/commonInclude.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/commonInclude.jsp
new file mode 100644
index 0000000..8be4022
--- /dev/null
+++ b/apps/showcase/src/main/webapp/WEB-INF/ajax/commonInclude.jsp
@@ -0,0 +1,5 @@
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
+<!--// START SNIPPET: common-include-->
+<sx:head cache="true"/>
+<!--// END SNIPPET: common-include-->

http://git-wip-us.apache.org/repos/asf/struts/blob/65eb9751/apps/showcase/src/main/webapp/WEB-INF/ajax/footer.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/footer.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/footer.jsp
new file mode 100644
index 0000000..5521cb4
--- /dev/null
+++ b/apps/showcase/src/main/webapp/WEB-INF/ajax/footer.jsp
@@ -0,0 +1,8 @@
+<%@taglib prefix="s" uri="/struts-tags" %>
+
+<hr/>
+
+<s:url var="backToAjaxExamples" value="../../index.jsp" />
+
+<s:a href="%{backToAjaxExamples}">Back To AJAX Examples</s:a>&nbsp;
+