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 b3e8d16da14cf4080f70e7f75fd215ffb58633bd
Author: Lukasz Lenart <[email protected]>
AuthorDate: Sat Jul 18 07:09:52 2026 +0200

    WW-5653 feat(showcase): migrate fileupload and conversion pages to 
Bootstrap 5
    
    Co-Authored-By: Claude Opus 4.8 <[email protected]>
---
 .../webapp/WEB-INF/conversion/enterAddressInfo.jsp |  2 +-
 .../webapp/WEB-INF/conversion/enterOperations.jsp  |  2 +-
 .../webapp/WEB-INF/conversion/enterPersonInfo.jsp  |  2 +-
 .../src/main/webapp/WEB-INF/conversion/index.jsp   |  2 +-
 .../webapp/WEB-INF/conversion/showAddressInfo.jsp  |  2 +-
 .../webapp/WEB-INF/conversion/showOperations.jsp   |  2 +-
 .../webapp/WEB-INF/conversion/showPersonInfo.jsp   |  2 +-
 .../WEB-INF/fileupload/dynamic-upload-success.jsp  | 64 +++++++++++-----------
 .../webapp/WEB-INF/fileupload/dynamic-upload.jsp   |  6 +-
 .../webapp/WEB-INF/fileupload/multiple-success.jsp |  2 +-
 .../fileupload/multipleUploadUsingArray.jsp        |  2 +-
 .../WEB-INF/fileupload/multipleUploadUsingList.jsp |  2 +-
 .../webapp/WEB-INF/fileupload/upload-success.jsp   |  2 +-
 .../src/main/webapp/WEB-INF/fileupload/upload.jsp  |  2 +-
 14 files changed, 47 insertions(+), 47 deletions(-)

diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/conversion/enterAddressInfo.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/conversion/enterAddressInfo.jsp
index 676c16949..640614b55 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/conversion/enterAddressInfo.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/conversion/enterAddressInfo.jsp
@@ -24,7 +24,7 @@
        <title>Struts2 Showcase - Conversion - Populate into Struts action 
class a Set of Address.java Object</title>
 </head>
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
        <h1>Conversion - Populate into Struts action class a Set of 
Address.java Object</h1>
 </div>
 
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/conversion/enterOperations.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/conversion/enterOperations.jsp
index d3e30033e..53c22ac42 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/conversion/enterOperations.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/conversion/enterOperations.jsp
@@ -24,7 +24,7 @@
        <title>Struts2 Showcase - Conversion - Tiger 5 Enum</title>
 </head>
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
        <h1>Conversion - Tiger 5 Enum</h1>
 </div>
 
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/conversion/enterPersonInfo.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/conversion/enterPersonInfo.jsp
index acb5b0377..5a9be57a0 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/conversion/enterPersonInfo.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/conversion/enterPersonInfo.jsp
@@ -24,7 +24,7 @@
        <title>Struts2 Showcase - Conversion - Populate Object into Struts' 
action List</title>
 </head>
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
        <h1>Conversion - Populate Object into Struts' action List</h1>
 </div>
 
diff --git a/apps/showcase/src/main/webapp/WEB-INF/conversion/index.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/conversion/index.jsp
index adf6569e3..86fedbf73 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/conversion/index.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/conversion/index.jsp
@@ -25,7 +25,7 @@
        <title>Struts2 Showcase - Conversion</title>
 </head>
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
        <h1>Conversion</h1>
 </div>
 
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/conversion/showAddressInfo.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/conversion/showAddressInfo.jsp
index 3d636cb36..2f5a93b12 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/conversion/showAddressInfo.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/conversion/showAddressInfo.jsp
@@ -24,7 +24,7 @@
        <title>Struts2 Showcase - Conversion - Populate into Struts action 
class a Set of Address.java Object</title>
 </head>
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
        <h1>Conversion - Populate into Struts action class a Set of 
Address.java Object</h1>
 </div>
 
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/conversion/showOperations.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/conversion/showOperations.jsp
index 8e643539a..b7fd700bf 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/conversion/showOperations.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/conversion/showOperations.jsp
@@ -24,7 +24,7 @@
        <title>Struts2 Showcase - Conversion - Tiger 5 Enum</title>
 </head>
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
        <h1>Conversion - Tiger 5 Enum</h1>
 </div>
 
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/conversion/showPersonInfo.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/conversion/showPersonInfo.jsp
index d3fc85ccb..fef019311 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/conversion/showPersonInfo.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/conversion/showPersonInfo.jsp
@@ -24,7 +24,7 @@
        <title>Struts2 Showcase - Conversion - Populate Object into Struts' 
action List</title>
 </head>
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
        <h1>Conversion - Populate Object into Struts' action List</h1>
 </div>
 
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/fileupload/dynamic-upload-success.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/dynamic-upload-success.jsp
index 78ca7086b..d001c53da 100644
--- 
a/apps/showcase/src/main/webapp/WEB-INF/fileupload/dynamic-upload-success.jsp
+++ 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/dynamic-upload-success.jsp
@@ -30,7 +30,7 @@
 </head>
 
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
     <h1>File Upload Successful</h1>
     <p class="lead">Your file was validated and uploaded successfully</p>
 </div>
@@ -42,50 +42,50 @@
                 <strong>Success!</strong> Your file passed all validation 
checks.
             </div>
 
-            <div class="panel panel-default">
-                <div class="panel-heading">
-                    <h3 class="panel-title">Upload Details</h3>
+            <div class="card">
+                <div class="card-header">
+                    <h3 class="card-title">Upload Details</h3>
                 </div>
-                <div class="panel-body">
-                    <dl class="dl-horizontal">
-                        <dt>Upload Type:</dt>
-                        <dd><s:property value="uploadType == 'image' ? 'Image' 
: 'Document'"/></dd>
+                <div class="card-body">
+                    <dl class="row">
+                        <dt class="col-sm-3">Upload Type:</dt>
+                        <dd class="col-sm-9"><s:property value="uploadType == 
'image' ? 'Image' : 'Document'"/></dd>
 
-                        <dt>Content Type:</dt>
-                        <dd><code><s:property value="contentType"/></code></dd>
+                        <dt class="col-sm-3">Content Type:</dt>
+                        <dd class="col-sm-9"><code><s:property 
value="contentType"/></code></dd>
 
-                        <dt>File Name:</dt>
-                        <dd><s:property value="fileName"/></dd>
+                        <dt class="col-sm-3">File Name:</dt>
+                        <dd class="col-sm-9"><s:property 
value="fileName"/></dd>
 
-                        <dt>Original Name:</dt>
-                        <dd><s:property value="originalName"/></dd>
+                        <dt class="col-sm-3">Original Name:</dt>
+                        <dd class="col-sm-9"><s:property 
value="originalName"/></dd>
 
-                        <dt>File Size:</dt>
-                        <dd><s:property value="uploadSize"/> bytes</dd>
+                        <dt class="col-sm-3">File Size:</dt>
+                        <dd class="col-sm-9"><s:property value="uploadSize"/> 
bytes</dd>
 
-                        <dt>Input Name:</dt>
-                        <dd><s:property value="inputName"/></dd>
+                        <dt class="col-sm-3">Input Name:</dt>
+                        <dd class="col-sm-9"><s:property 
value="inputName"/></dd>
 
-                        <dt>File Object:</dt>
-                        <dd><code><s:property 
value="uploadedFile"/></code></dd>
+                        <dt class="col-sm-3">File Object:</dt>
+                        <dd class="col-sm-9"><code><s:property 
value="uploadedFile"/></code></dd>
                     </dl>
                 </div>
             </div>
 
-            <div class="panel panel-info">
-                <div class="panel-heading">
-                    <h3 class="panel-title">Validation Rules Applied</h3>
+            <div class="card border-info">
+                <div class="card-header text-bg-info">
+                    <h3 class="card-title">Validation Rules Applied</h3>
                 </div>
-                <div class="panel-body">
-                    <dl class="dl-horizontal">
-                        <dt>Allowed MIME Types:</dt>
-                        <dd><code><s:property 
value="uploadConfig.allowedMimeTypes"/></code></dd>
+                <div class="card-body">
+                    <dl class="row">
+                        <dt class="col-sm-3">Allowed MIME Types:</dt>
+                        <dd class="col-sm-9"><code><s:property 
value="uploadConfig.allowedMimeTypes"/></code></dd>
 
-                        <dt>Allowed Extensions:</dt>
-                        <dd><code><s:property 
value="uploadConfig.allowedExtensions"/></code></dd>
+                        <dt class="col-sm-3">Allowed Extensions:</dt>
+                        <dd class="col-sm-9"><code><s:property 
value="uploadConfig.allowedExtensions"/></code></dd>
 
-                        <dt>Maximum Size:</dt>
-                        <dd><s:property 
value="uploadConfig.maxFileSizeFormatted"/></dd>
+                        <dt class="col-sm-3">Maximum Size:</dt>
+                        <dd class="col-sm-9"><s:property 
value="uploadConfig.maxFileSizeFormatted"/></dd>
                     </dl>
                     <p class="text-muted">
                         <small>
@@ -98,7 +98,7 @@
 
             <div class="btn-group">
                 <s:a action="dynamicUpload" cssClass="btn btn-primary">
-                    <i class="glyphicon glyphicon-upload"></i> Upload Another 
File
+                    <i class="bi bi-upload"></i> Upload Another File
                 </s:a>
             </div>
         </div>
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/fileupload/dynamic-upload.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/dynamic-upload.jsp
index b1f2b50b5..b53956922 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/fileupload/dynamic-upload.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/fileupload/dynamic-upload.jsp
@@ -26,7 +26,7 @@
 </head>
 
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
     <h1>Dynamic File Upload Validation</h1>
     <p class="lead">Demonstrates WithLazyParams for runtime validation 
rules</p>
 </div>
@@ -73,14 +73,14 @@
                 <s:file name="upload" label="Select File" 
cssClass="form-control"/>
 
                 <s:submit value="Upload File" cssClass="btn btn-primary"/>
-                <s:submit value="Refresh Rules" action="dynamicUpload" 
cssClass="btn btn-default"/>
+                <s:submit value="Refresh Rules" action="dynamicUpload" 
cssClass="btn btn-secondary"/>
             </s:form>
         </div>
     </div>
 
     <div class="row">
         <div class="col-md-12">
-            <div class="well">
+            <div class="bg-light border rounded p-3">
                 <h4>How It Works</h4>
                 <p>In <code>struts.xml</code>, the interceptor parameters use 
expressions:</p>
                 <pre>&lt;interceptor-ref name="actionFileUpload"&gt;
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/fileupload/multiple-success.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/multiple-success.jsp
index 3ce6d84bb..b8e76638a 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/fileupload/multiple-success.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/fileupload/multiple-success.jsp
@@ -29,7 +29,7 @@
 </head>
 
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
        <h1>Fileupload sample - Multiple fileupload</h1>
 </div>
 
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/fileupload/multipleUploadUsingArray.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/multipleUploadUsingArray.jsp
index 7da56ba35..fa52f5190 100644
--- 
a/apps/showcase/src/main/webapp/WEB-INF/fileupload/multipleUploadUsingArray.jsp
+++ 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/multipleUploadUsingArray.jsp
@@ -29,7 +29,7 @@
 </head>
 
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
        <h1>Fileupload sample - Multiple fileupload using Array</h1>
 </div>
 
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/fileupload/multipleUploadUsingList.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/multipleUploadUsingList.jsp
index a7e227364..6fea44eab 100644
--- 
a/apps/showcase/src/main/webapp/WEB-INF/fileupload/multipleUploadUsingList.jsp
+++ 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/multipleUploadUsingList.jsp
@@ -29,7 +29,7 @@
 </head>
 
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
        <h1>Fileupload sample - Multiple fileupload using List</h1>
 </div>
 
diff --git 
a/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload-success.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload-success.jsp
index e694b75b9..949dcb02f 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload-success.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload-success.jsp
@@ -29,7 +29,7 @@
 </head>
 
 <body>
-<div class="page-header">
+<div class="border-bottom pb-2 mb-3">
     <h1>Fileupload sample</h1>
 </div>
 
diff --git a/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload.jsp
index a806af559..fc9abefdd 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/fileupload/upload.jsp
@@ -25,7 +25,7 @@
 </head>
 
 <body>
-    <div class="page-header">
+    <div class="border-bottom pb-2 mb-3">
            <h1>Fileupload sample</h1>
     </div>
 

Reply via email to