This is an automated email from the ASF dual-hosted git repository. lukaszlenart pushed a commit to branch WW-5653-bootstrap5-sample-apps in repository https://gitbox.apache.org/repos/asf/struts.git
commit 31e23e12eb27ce26828ea8885b3ce97a120d71dd Author: Lukasz Lenart <[email protected]> AuthorDate: Sat Jul 18 06:22:38 2026 +0200 WW-5653 feat(showcase): migrate navbar and top-level pages to Bootstrap 5 Co-Authored-By: Claude Opus 4.8 <[email protected]> --- .../actionchaining/actionChainingResult.jsp | 2 +- .../WEB-INF/bean-validation/bean-validation.jsp | 2 +- .../src/main/webapp/WEB-INF/decorators/main.jsp | 144 ++++++++++----------- .../webapp/WEB-INF/dispatcher/dispatch-result.jsp | 2 +- .../src/main/webapp/WEB-INF/filedownload/index.jsp | 2 +- apps/showcase/src/main/webapp/WEB-INF/help.jsp | 6 +- .../src/main/webapp/WEB-INF/html5/index.jsp | 12 +- .../webapp/WEB-INF/modelDriven/modelDriven.jsp | 2 +- .../WEB-INF/modelDriven/modelDrivenResult.jsp | 2 +- .../src/main/webapp/WEB-INF/person/edit-person.jsp | 2 +- apps/showcase/src/main/webapp/WEB-INF/showcase.jsp | 2 +- .../src/main/webapp/WEB-INF/tiles/header.jsp | 2 +- 12 files changed, 89 insertions(+), 91 deletions(-) diff --git a/apps/showcase/src/main/webapp/WEB-INF/actionchaining/actionChainingResult.jsp b/apps/showcase/src/main/webapp/WEB-INF/actionchaining/actionChainingResult.jsp index cf19dc1d8..3682860d7 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/actionchaining/actionChainingResult.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/actionchaining/actionChainingResult.jsp @@ -25,7 +25,7 @@ <title>Struts2 Showcase - Action Chaining Result</title> </head> <body> - <div class="page-header"> + <div class="border-bottom pb-2 mb-3"> <h1>Action Chaining Result:</h1> </div> diff --git a/apps/showcase/src/main/webapp/WEB-INF/bean-validation/bean-validation.jsp b/apps/showcase/src/main/webapp/WEB-INF/bean-validation/bean-validation.jsp index 11d9c724c..8a8104058 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/bean-validation/bean-validation.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/bean-validation/bean-validation.jsp @@ -26,7 +26,7 @@ </head> <body> -<div class="page-header"> +<div class="border-bottom pb-2 mb-3"> <h1>Bean Validation Examples</h1> </div> diff --git a/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp b/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp index 4fe7f8dcc..9f1b66288 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp @@ -97,14 +97,12 @@ <body id="page-home"> -<nav class="navbar navbar-default navbar-fixed-top"> +<nav class="navbar navbar-expand-lg navbar-light bg-light navbar-fixed-top"> <div class="container-fluid"> <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> + <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-main" aria-controls="navbar-main" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> </button> <s:url var="home" action="showcase" namespace="/" includeContext="false" /> <s:a value="%{home}" cssClass="navbar-brand"> @@ -112,98 +110,98 @@ </s:a> </div> - <div id="navbar" class="navbar-collapse collapse"> + <div class="collapse navbar-collapse" id="navbar-main"> <ul class="nav navbar-nav"> - <li><s:a value="%{home}"><i class="glyphicon glyphicon-home"></i> Home</s:a></li> + <li><s:a value="%{home}"><i class="bi bi-house"></i> Home</s:a></li> <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown"> - <i class="glyphicon glyphicon-cog"></i> Configuration + <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown"> + <i class="bi bi-gear"></i> Configuration <b class="caret"></b></a> <ul class="dropdown-menu" role="menu"> <li><s:a action="actionChain1!input" namespace="/actionchaining" - includeParams="none">Action Chaining</s:a></li> + includeParams="none" cssClass="dropdown-item">Action Chaining</s:a></li> <li><s:a action="index" namespace="/config-browser" - includeParams="none">Config Browser</s:a></li> + includeParams="none" cssClass="dropdown-item">Config Browser</s:a></li> <s:url var="conversion" action="index" namespace="/conversion" includeContext="false" /> - <li><s:a value="%{conversion}">Conversion</s:a></li> - <li><s:a value="/person/index.html">Person Manager ( by Conventions )</s:a></li> + <li><s:a value="%{conversion}" cssClass="dropdown-item">Conversion</s:a></li> + <li><s:a value="/person/index.html" cssClass="dropdown-item">Person Manager ( by Conventions )</s:a></li> </ul> </li> <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Non UI Tags<b class="caret"></b></a> + <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">Non UI Tags<b class="caret"></b></a> <ul class="dropdown-menu" role="menu"> <li><s:url var="url" action="showActionTagDemo" namespace="/tags/non-ui/actionTag"/> - <s:a href="%{url}">Action Tag</s:a></li> + <s:a href="%{url}" cssClass="dropdown-item">Action Tag</s:a></li> <li><s:url var="url" namespace="/tags/non-ui" action="date"/> - <s:a href="%{url}">Date Tag</s:a></li> + <s:a href="%{url}" cssClass="dropdown-item">Date Tag</s:a></li> <li><s:url var="url" action="debugTagDemo" namespace="/tags/non-ui"/> - <s:a href="%{url}">Debug Tag</s:a></li> + <s:a href="%{url}" cssClass="dropdown-item">Debug Tag</s:a></li> <li><s:url var="url" action="showGeneratorTagDemo" namespace="/tags/non-ui/iteratorGeneratorTag"/> - <s:a href="%{url}">Iterator Generator Tag</s:a></li> + <s:a href="%{url}" cssClass="dropdown-item">Iterator Generator Tag</s:a></li> <li> <s:url var="url" action="showAppendTagDemo" namespace="/tags/non-ui/appendIteratorTag"/> - <s:a href="%{#url}">Append Iterator Tag</s:a> + <s:a href="%{#url}" cssClass="dropdown-item">Append Iterator Tag</s:a> <li> <s:url var="url" action="showMergeTagDemo" namespace="/tags/non-ui/mergeIteratorTag"/> - <s:a href="%{#url}">Merge Iterator Demo</s:a> + <s:a href="%{#url}" cssClass="dropdown-item">Merge Iterator Demo</s:a> <li> <s:url var="url" action="showSubsetTagDemo" namespace="/tags/non-ui/subsetIteratorTag"/> - <s:a href="%{#url}">Subset Tag</s:a> + <s:a href="%{#url}" cssClass="dropdown-item">Subset Tag</s:a> <li><s:url var="url" action="actionPrefixExampleUsingFreemarker" namespace="/tags/non-ui/actionPrefix"/> - <s:a href="%{#url}">Action Prefix Example (Freemarker)</s:a></li> + <s:a href="%{#url}" cssClass="dropdown-item">Action Prefix Example (Freemarker)</s:a></li> <li><s:url var="url" action="testIfTagJsp" namespace="/tags/non-ui/ifTag"/> - <s:a href="%{#url}">If Tag (JSP)</s:a></li> + <s:a href="%{#url}" cssClass="dropdown-item">If Tag (JSP)</s:a></li> <li><s:url var="url" action="testIfTagFreemarker" namespace="/tags/non-ui/ifTag"/> - <s:a href="%{#url}">If Tag (Freemarker)</s:a></li> + <s:a href="%{#url}" cssClass="dropdown-item">If Tag (Freemarker)</s:a></li> </ul> </li> <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">UI Tags<b class="caret"></b></a> + <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">UI Tags<b class="caret"></b></a> <ul class="dropdown-menu" role="menu"> <li><s:url var="url" namespace="/tags/ui" action="example" method="input"/> - <s:a href="%{url}">UI Example</s:a></li> + <s:a href="%{url}" cssClass="dropdown-item">UI Example</s:a></li> <li><s:url var="url" namespace="/tags/ui" action="exampleVelocity" method="input"/> - <s:a href="%{url}">UI Example (Velocity)</s:a></li> + <s:a href="%{url}" cssClass="dropdown-item">UI Example (Velocity)</s:a></li> <li><s:url var="url" namespace="/tags/ui" action="lotsOfOptiontransferselect" method="input"/> - <s:a href="%{url}">Option Transfer Select UI Example</s:a></li> + <s:a href="%{url}" cssClass="dropdown-item">Option Transfer Select UI Example</s:a></li> <li><s:url var="url" namespace="/tags/ui" action="moreSelects" method="input"/> - <s:a href="%{url}">More Select Box UI Examples</s:a></li> + <s:a href="%{url}" cssClass="dropdown-item">More Select Box UI Examples</s:a></li> <li> <s:url var="url" namespace="/tags/ui" action="componentTagExample"/> - <s:a href="%{#url}">Component Tag Example</s:a></li> + <s:a href="%{#url}" cssClass="dropdown-item">Component Tag Example</s:a></li> <li><s:url var="url" namespace="/tags/ui" action="actionTagExample" method="input"/> - <s:a href="%{url}">Action Tag Example</s:a></li> + <s:a href="%{url}" cssClass="dropdown-item">Action Tag Example</s:a></li> <li><s:url var="url" action="index" namespace="/html5"/> - <s:a href="%{#url}">Html 5 theme</s:a></li> + <s:a href="%{#url}" cssClass="dropdown-item">Html 5 theme</s:a></li> </ul> </li> <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown"> - <i class="glyphicon glyphicon-file"></i> File + <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown"> + <i class="bi bi-file-earmark"></i> File <b class="caret"></b></a> <ul class="dropdown-menu" role="menu"> - <li><s:a namespace="/filedownload" action="index">File Download</s:a></li> + <li><s:a namespace="/filedownload" action="index" cssClass="dropdown-item">File Download</s:a></li> <li> <s:url var="url" action="upload" namespace="/fileupload"/> - <s:a href="%{#url}">Single File Upload</s:a> + <s:a href="%{#url}" cssClass="dropdown-item">Single File Upload</s:a> </li> <li> <s:url var="url" action="dynamicUpload" namespace="/fileupload"/> - <s:a href="%{#url}">Single File Upload - dynamic config</s:a> + <s:a href="%{#url}" cssClass="dropdown-item">Single File Upload - dynamic config</s:a> </li> <li> <s:url var="url" action="multipleUploadUsingList" namespace="/fileupload"/> - <s:a href="%{#url}">Multiple File Upload (List)</s:a> + <s:a href="%{#url}" cssClass="dropdown-item">Multiple File Upload (List)</s:a> </li> <li> <s:url var="url" action="multipleUploadUsingArray" namespace="/fileupload"/> - <s:a href="%{#url}">Multiple File Upload (Array)</s:a> + <s:a href="%{#url}" cssClass="dropdown-item">Multiple File Upload (Array)</s:a> </li> </ul> </li> <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Validation<b class="caret"></b></a> + <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">Validation<b class="caret"></b></a> <ul class="dropdown-menu" role="menu"> <s:url var="quizBasic" namespace="/validation" action="quizBasic" method="input"/> <s:url var="quizClient" namespace="/validation" action="quizClient" method="input"/> @@ -216,65 +214,65 @@ <s:url var="storeMessageAcrossRequestExample" namespace="/validation" action="storeErrorsAcrossRequestExample"/> <s:url var="beanValidationUrl" action="bean-validation" namespace="/bean-validation"/> <s:url var="ajaxFormSubmitUrl" action="ajaxFormSubmit" namespace="/validation" method="input"/> - <li><s:a href="%{beanValidationUrl}">Bean Validation</s:a></li> - <li><s:a href="%{fieldValidatorUrl}">Field Validators</s:a></li> - <li><s:a href="%{clientSideValidationUrl}">Field Validators with client-side JavaScript</s:a></li> - <li><s:a href="%{nonFieldValidatorUrl}">Non Field Validator</s:a></li> - <li><s:a href="%{storeMessageAcrossRequestExample}">Store across request using MessageStoreInterceptor (Example)</s:a></li> - <li><s:a href="%{quizBasic}">Validation (basic)</s:a></li> - <li><s:a href="%{quizClient}">Validation (client)</s:a></li> - <li><s:a href="%{quizClientCss}">Validation (client using css_xhtml theme)</s:a></li> - <li><s:a href="%{visitorValidatorUrl}">Visitor Validator</s:a></li> - <li><s:a href="%{ajaxFormSubmitUrl}">AJAX Form Submit</s:a></li> + <li><s:a href="%{beanValidationUrl}" cssClass="dropdown-item">Bean Validation</s:a></li> + <li><s:a href="%{fieldValidatorUrl}" cssClass="dropdown-item">Field Validators</s:a></li> + <li><s:a href="%{clientSideValidationUrl}" cssClass="dropdown-item">Field Validators with client-side JavaScript</s:a></li> + <li><s:a href="%{nonFieldValidatorUrl}" cssClass="dropdown-item">Non Field Validator</s:a></li> + <li><s:a href="%{storeMessageAcrossRequestExample}" cssClass="dropdown-item">Store across request using MessageStoreInterceptor (Example)</s:a></li> + <li><s:a href="%{quizBasic}" cssClass="dropdown-item">Validation (basic)</s:a></li> + <li><s:a href="%{quizClient}" cssClass="dropdown-item">Validation (client)</s:a></li> + <li><s:a href="%{quizClientCss}" cssClass="dropdown-item">Validation (client using css_xhtml theme)</s:a></li> + <li><s:a href="%{visitorValidatorUrl}" cssClass="dropdown-item">Visitor Validator</s:a></li> + <li><s:a href="%{ajaxFormSubmitUrl}" cssClass="dropdown-item">AJAX Form Submit</s:a></li> </ul> </li> <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Examples<b class="caret"></b></a> + <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">Examples<b class="caret"></b></a> <ul class="dropdown-menu" role="menu"> <li class="dropdown-submenu"> <li> <s:url var="url" namespace="/hangman" action="hangmanNonAjax"/> - <s:a href="%{url}">Hangman</s:a> + <s:a href="%{url}" cssClass="dropdown-item">Hangman</s:a> </li> - <li><s:a value="/person/index.html">Person Manager</s:a></li> - <li><s:a value="/skill/index.html">CRUD</s:a></li> - <li><s:a value="/wait/index">Execute & Wait</s:a></li> - <li><s:a value="/token/index.html">Token</s:a></li> - <li><s:url var="url" namespace="/modelDriven" action="modelDriven"/><s:a + <li><s:a value="/person/index.html" cssClass="dropdown-item">Person Manager</s:a></li> + <li><s:a value="/skill/index.html" cssClass="dropdown-item">CRUD</s:a></li> + <li><s:a value="/wait/index" cssClass="dropdown-item">Execute & Wait</s:a></li> + <li><s:a value="/token/index.html" cssClass="dropdown-item">Token</s:a></li> + <li><s:url var="url" namespace="/modelDriven" action="modelDriven"/><s:a cssClass="dropdown-item" href="%{url}">Model Driven</s:a></li> - <li><s:a value="/async/index.html">Async</s:a></li> - <li><s:a value="/dispatcher/dispatch.action">Dispatcher result - dispatch</s:a></li> - <li><s:a value="/dispatcher/forward.action">Dispatcher result - forward</s:a></li> + <li><s:a value="/async/index.html" cssClass="dropdown-item">Async</s:a></li> + <li><s:a value="/dispatcher/dispatch.action" cssClass="dropdown-item">Dispatcher result - dispatch</s:a></li> + <li><s:a value="/dispatcher/forward.action" cssClass="dropdown-item">Dispatcher result - forward</s:a></li> </ul> </li> <li class="dropdown"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown">Integration<b class="caret"></b></a> + <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">Integration<b class="caret"></b></a> <ul class="dropdown-menu" role="menu"> <li> <s:url var="url" action="customFreemarkerManagerDemo" namespace="/freemarker"/> - <s:a href="%{#url}">Demo of usage of a Custom Freemarker Manager</s:a> + <s:a href="%{#url}" cssClass="dropdown-item">Demo of usage of a Custom Freemarker Manager</s:a> </li> <li> <s:url var="url" action="standardTags" namespace="/freemarker"/> - <s:a href="%{#url}">Demo of Standard Struts Freemarker Tags</s:a> + <s:a href="%{#url}" cssClass="dropdown-item">Demo of Standard Struts Freemarker Tags</s:a> </li> - <li><s:a value="/tiles/index.action">Tiles</s:a></li> + <li><s:a value="/tiles/index.action" cssClass="dropdown-item">Tiles</s:a></li> </ul> </li> </ul> - <ul class="nav navbar-nav pull-right"> + <ul class="nav navbar-nav float-end"> <li class="dropdown last"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown"> - <i class="glyphicon glyphicon-question-sign"></i> Help<b class="caret"></b></a> + <a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown"> + <i class="bi bi-question-circle"></i> Help<b class="caret"></b></a> <ul class="dropdown-menu"> <s:url var="help" action="help" namespace="/" includeContext="false" /> - <li><s:a value="%{help}">Help</s:a></li> - <li><a href="http://struts.apache.org/mail.html"><i class="icon-share"></i> User Mailing + <li><s:a value="%{help}" cssClass="dropdown-item">Help</s:a></li> + <li><a href="http://struts.apache.org/mail.html" class="dropdown-item"><i class="icon-share"></i> User Mailing List</a></li> - <li><a href="http://struts.apache.org"><i class="icon-share"></i> Struts2 Website</a> + <li><a href="http://struts.apache.org" class="dropdown-item"><i class="icon-share"></i> Struts2 Website</a> </li> - <li><a href="http://struts.apache.org/docs/home.html"><i class="icon-share"></i> + <li><a href="http://struts.apache.org/docs/home.html" class="dropdown-item"><i class="icon-share"></i> Documentation</a></li> </ul> </li> @@ -295,7 +293,7 @@ </div> - <div class="pull-right"> + <div class="float-end"> <div> <s:action var="dateAction" name="date" namespace="/" executeResult="true"/> </div> @@ -310,7 +308,7 @@ <!-- end search --> </div> - <div class="pull-left"> + <div class="float-start"> Copyright © 2003-<s:property value="#dateAction.now.year + 1900"/> <a href="https://www.apache.org">The Apache Software Foundation.</a> </div> diff --git a/apps/showcase/src/main/webapp/WEB-INF/dispatcher/dispatch-result.jsp b/apps/showcase/src/main/webapp/WEB-INF/dispatcher/dispatch-result.jsp index d493b146b..521285cec 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/dispatcher/dispatch-result.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/dispatcher/dispatch-result.jsp @@ -27,7 +27,7 @@ </head> <body> -<div class="page-header"> +<div class="border-bottom pb-2 mb-3"> <h1>Dispatcher Result Example</h1> </div> diff --git a/apps/showcase/src/main/webapp/WEB-INF/filedownload/index.jsp b/apps/showcase/src/main/webapp/WEB-INF/filedownload/index.jsp index ac1082d20..4080c6dc7 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/filedownload/index.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/filedownload/index.jsp @@ -25,7 +25,7 @@ </head> <body> - <div class="page-header"> + <div class="border-bottom pb-2 mb-3"> <h1>File Download Example</h1> </div> diff --git a/apps/showcase/src/main/webapp/WEB-INF/help.jsp b/apps/showcase/src/main/webapp/WEB-INF/help.jsp index 96146bfd1..18dac37b6 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/help.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/help.jsp @@ -25,7 +25,7 @@ </head> <body> - <div class="page-header"> + <div class="border-bottom pb-2 mb-3"> <h1>Getting support</h1> </div> @@ -39,13 +39,13 @@ <div class="alert alert-info"> Use this mailing list if you encounter problems while developing and using with Struts. </div> - <a href="http://struts.apache.org/mail.html" class="btn btn-large btn-info"><i class="glyphicon glyphicon-share"></i> User List</a> + <a href="http://struts.apache.org/mail.html" class="btn btn-large btn-info"><i class="bi bi-share"></i> User List</a> </div> <div class="col-md-4" style="text-align: center;"> <div class="alert alert-info"> The Struts 2 website. </div> - <a href="http://struts.apache.org" class="btn btn-large btn-info"><i class="glyphicon glyphicon-share"></i> Struts 2</a> + <a href="http://struts.apache.org" class="btn btn-large btn-info"><i class="bi bi-share"></i> Struts 2</a> </div> </div> </body> diff --git a/apps/showcase/src/main/webapp/WEB-INF/html5/index.jsp b/apps/showcase/src/main/webapp/WEB-INF/html5/index.jsp index 1bab19d54..af7ddb021 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/html5/index.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/html5/index.jsp @@ -34,7 +34,7 @@ <div class="container-fluid"> <div class="row"> <div class="col-md-12"> - <div class="hero-unit"> + <div class="p-5 mb-4 bg-light rounded-3"> <h1>Html 5 tags demo</h1> <p>All the tags on this page are from <i>html5</i> theme. <s:a theme="html5" action="showcase" namespace="/">Back</s:a> to main Showcase App page</p> </div> @@ -44,7 +44,7 @@ <!-- Section 1: Link Components --> <div class="row"> <div class="col-md-12"> - <div class="page-header"> + <div class="border-bottom pb-2 mb-3"> <h2>Link Components</h2> </div> </div> @@ -61,7 +61,7 @@ <!-- Section 2: Error & Message Components --> <div class="row"> <div class="col-md-12"> - <div class="page-header"> + <div class="border-bottom pb-2 mb-3"> <h2>Error & Message Components</h2> </div> </div> @@ -94,7 +94,7 @@ <!-- Section 3: Form Components --> <div class="row"> <div class="col-md-12"> - <div class="page-header"> + <div class="border-bottom pb-2 mb-3"> <h2>Form Components</h2> </div> </div> @@ -211,7 +211,7 @@ <!-- Section 4: Advanced Selection Components --> <div class="row"> <div class="col-md-12"> - <div class="page-header"> + <div class="border-bottom pb-2 mb-3"> <h2>Advanced Selection Components</h2> </div> </div> @@ -228,7 +228,7 @@ <!-- Section 5: Utility & Display Components --> <div class="row"> <div class="col-md-12"> - <div class="page-header"> + <div class="border-bottom pb-2 mb-3"> <h2>Utility & Display Components</h2> </div> </div> diff --git a/apps/showcase/src/main/webapp/WEB-INF/modelDriven/modelDriven.jsp b/apps/showcase/src/main/webapp/WEB-INF/modelDriven/modelDriven.jsp index 075073ccf..1351b5265 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/modelDriven/modelDriven.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/modelDriven/modelDriven.jsp @@ -27,7 +27,7 @@ <body> -<div class="page-header"> +<div class="border-bottom pb-2 mb-3"> <h1>Model Driven Example</h1> </div> diff --git a/apps/showcase/src/main/webapp/WEB-INF/modelDriven/modelDrivenResult.jsp b/apps/showcase/src/main/webapp/WEB-INF/modelDriven/modelDrivenResult.jsp index 97bc75ef3..35176dfe4 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/modelDriven/modelDrivenResult.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/modelDriven/modelDrivenResult.jsp @@ -34,7 +34,7 @@ <body> -<div class="page-header"> +<div class="border-bottom pb-2 mb-3"> <h1>Model Driven Example - Result</h1> </div> diff --git a/apps/showcase/src/main/webapp/WEB-INF/person/edit-person.jsp b/apps/showcase/src/main/webapp/WEB-INF/person/edit-person.jsp index a301c69c1..909297c41 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/person/edit-person.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/person/edit-person.jsp @@ -24,7 +24,7 @@ <title>Struts2 Showcase - Person Manager Example</title> </head> <body> -<div class="page-header"> +<div class="border-bottom pb-2 mb-3"> <h1>Person Manager Example</h1> </div> diff --git a/apps/showcase/src/main/webapp/WEB-INF/showcase.jsp b/apps/showcase/src/main/webapp/WEB-INF/showcase.jsp index 92c1bfd60..043947ce2 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/showcase.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/showcase.jsp @@ -36,7 +36,7 @@ <div class="row"> <div class="col-md-12"> - <div class="hero-unit"> + <div class="p-5 mb-4 bg-light rounded-3"> <h1>Welcome!</h1> <p>The Struts Showcase demonstrates a variety of use cases and tag usages. Essentially, the application exercises various framework features in isolation. The Showcase is not meant as a "best practices" example.</p> <p>For more "by example" solutions, see the <a href="https://github.com/apache/struts-examples" class="btn btn-primary btn-large">Struts Examples »</a> pages.</p> diff --git a/apps/showcase/src/main/webapp/WEB-INF/tiles/header.jsp b/apps/showcase/src/main/webapp/WEB-INF/tiles/header.jsp index 283d06276..a2f418db5 100644 --- a/apps/showcase/src/main/webapp/WEB-INF/tiles/header.jsp +++ b/apps/showcase/src/main/webapp/WEB-INF/tiles/header.jsp @@ -18,6 +18,6 @@ * under the License. */ --> -<div class="page-header"> +<div class="border-bottom pb-2 mb-3"> <h1>${title}</h1> </div>
