Still need to support Apache Struts 1?

Then our site is the right place to visit.
There are still a lot of applications in the wild, which are based on Struts 1.
A lot of effort, intelectual property and love has been invested in these applications.
They are still working and you don't want to recreate them form scratch.
But you are facing new challenges.

What you want or might want

How to do it

In order to succeed your application should rely on a stable foundation.
But what does this mean?
All layer of you platform must be be under support.
  1. The Operating-System
  2. Java Version - Just use a Java-Version with Longtime-Support. Java Versions with LTS are 1.8 and Java 11. These are the Version for which we provide support.
  3. The Application-Server
  4. Struts 1
  5. Your Web-Applicaiton

recommended environments

Java 8 Stack

  1. Tomcat-8.5.64 + Struts 1.4.1
  2. JBoss EAP + Struts 1.4.1

Java 11 Stack

Run the demo

  1. Install a JDK if not available https://adoptopenjdk.net or https://docs.aws.amazon.com/corretto
  2. Download our bundle
  3. set the JAVA_HOME-Environment-Variable
  4. bin\startup.bat or bind/startup.sh
  5. Run the demo http://localhost:8080/struts-cookbook
  6. Run the demo http://localhost:8080/html5-example
...

Long Time Support (LTS) for Struts

You need a Software-Stack with LTS.
Java 1.8 or Java 11
JavaNummerLTS* (Long Term Support)
Java SE 1458
Java SE 1357
Java SE 1256
Java SE 1155Yes
Java SE 1054
Java SE 953
Java SE 852Yes
Java SE 751
Java SE 6.050 (0x32 hex),
Java SE 5.0 49 (0x31 hex),
JDK 1.448 (0x30 hex),
JDK 1.3td> 47 (0x2F hex)
JDK 1.246 (0x2E hex)
JDK 1.145 (0x2D hex)
* Der Begriff Long Term Support oder kurz LTS bezeichnet – vornehmlich im Open-Source-Kontext – langfristig unterstützte Software oder Betriebssysteme. Damit steht der Begriff sinnbildlich für Stabilität und Verlässlichkeit über einen langen, in der Regel fest definierten Mindestzeitraum hinweg.

We explain you how to do stuff with Struts 1

Struts 1.4.1

https://fontawesome.com/how-to-use/on-the-web/styling/icons-in-a-list

Our mission

On 2013-04-05 the Apache Struts Project Team informed the comunity, that the Struts 1.x web framework has reached its end of life and is no longer officially supported.
STRUTS-support.com is trying to fill the gap. If you need Enterprise-Level-Support than...

References

https://struts.apache.org/struts1eol-announcement.html
https://struts.apache.org/struts1eol-press.html
...

Releases

1.3.10
Last Official releases from the Apache Software fundation
1.4.1
Current release form STRUTS-support.com
Full Distribution:struts-1.3.10-all.zip
[MD5] 678FC24CAA87CCFD0C1731BFEDC6F4C7
Library:struts-1.3.10-lib.zip
[MD5] A4C1A91F659C0F6A24C6E9A3E7BDA6A7
struts-1.4.1-lib.zip
[MD5] 809b85cacd99e947412092eba0c9f48d
Source: struts-1.3.10-src.zip
[MD5] 7FB96ADBC2B18DDD80462294CAFB944D
can be licensed - get a quote
Examples: struts-1.3.10-apps.zip
[MD5] B7801B94D84D0EA41AFCDCAA3C7D10B7
  • struts-cookbook.war
  • struts-blank.war
  • struts-examples.war
  • struts-mailreader.war
  • struts-scripting-mailreader.war
struts-1.4.1-apps.zip
[MD5] 05633e01439ad0f5e46d12060ebcbe1a
  • NEW:html5-example.war
  • struts-cookbook.war
  • struts-blank.war
  • struts-examples.war
  • struts-mailreader.war
  • struts-scripting-mailreader.war
Documentation: struts-1.3.10-docs.zip
[MD5] 67856607707473C61D426B8A3C3AB555
struts-1.4.1-docs.zip
[MD5] 8a259d01f0ba254add4b25a8a0156d6c
SpecificationJ2EE v1.3 from the year 2002
Servlet 2.3 comes with JSP 1.2 without EL.
EL is to be provided by JSTL 1.0 and works in JSTL tags only
Based on Servlet 3.1

Older Releases

Older versions of Struts are available from the Archive Site (https://archive.apache.org/dist/struts )

What we do

What we did so fare

Why we had to it

How we did it

Securing the App.

What we can do for you

Who we are

struts-support is a promotional page of nikem GmbH form Stuttgart Germany.

Dokumentation

The Versions

https://svn.apache.org/viewvc/struts/struts1/tags
http://svn.apache.org/repos/asf/struts/struts1
https://github.com/apache/struts1

Support for html5

Struts support of mobile devices Struts support of html5

Securing your Application

If you use our modern Version


Returning Binary Data with struts 1

In a default request-reply cycle in Struts, the view is implemented by a JSP-Page.
Usualy the content-Type is ...
If you want to create binary data e.g. a Excel-File or a PDF-File you got to do everything in the Action.
To avoid using any jsp simply return null after you are done.

Struts Tutorials

https://mkyong.com/tutorials/struts-tutorials/
https://www.roseindia.net/struts/struts1/

Support for Ajax

Struts 1 based applications use the HTTP-POST methode in the repuest-response-loop.
jQuery gibt ja implizit das Cookie mit.... jQuery.post( "/laif/commons/client/excelJnlp.jsp", function( data ) { alert( "Data Loaded: " + data ); });

Dynamicly create real Excel-Files

By real Excel-files we mean, that we do not create CSV-Files but xls ors xlsx-files.

Execute shell-Script in a JSP

Authentifizierung der JEE-Session über die URL

manchmal komm man die in verlegenheit einen html-link zu verwenden.
Dies kann unter umständen scheitern, wenn einen authentifizieren benötigt wird.
jee verwendet JSESSIONID als cookie um dem user zu tracken.
Manchmal kann man das Cookie aber nicht verwenden.
Wenn man jedoch den Browser verläßt und die Verantwortung an ein externes Programm delegiert (z.B. javaws) hat man ein Problem.
jee hat noch einen machanismus die jsessionid zu transportieren.
Es wirde einfach ;jsessionid=meineid an die url angehängt.
Das ist zwar irgendwie frech, da dies keinem der html-Standarts entspricht...


jnlp://localhost:8080/laif/dialog/9/menu/P/dokument/dmsJnlp.jsp;jsessionid=uhiyYbmvH0_XMYyjiPxbehrv7xBiybVJsdYb0Qks.dzs10n572


jQuery("iframe")[0].src = url;

P.S. damit ich das später wiederfinde sei hiermit erwähnt, dass die Anpassung in der dms.jsp erfolgt ist.

Scriptlet variablen der JSTL zur Verfügung stellen

Bisher wurden die Webseiten im Laif aus einer Mischung von Struts-Tags und Scriptlet entwickelt.
Seit 3/2020 kann man durch meine Umstellung nun auch JSTL verwenden.
Wenn man Daten aus einem Scriptlet verwenden will, so muss man diese zur Verfügung stellen.
Daraus läßt sich folgender Schluss zienen - Das Scriplet wird zuerst ausgeführt, dann erst kommt das JSTL.

JSP - Methoden in einer JSP erstellen

Switch you maven-Projekt from JEE5 to JEE7

pom.xml JEE5 to JEE 7

JEE-Umstellung

https://mkyong.com/web-development/the-web-xml-deployment-descriptor-examples/

legacy

JEE7

Der Web-Container

Der Deployment-Descriptor weist die Anwendung als web-app_2_3.dtd aus.
Der Standart ist so alt, dass er leider als prähistorisch zu sehen ist. Auch die eingecheckten Tools (xdocklet)
Sind so konfiguriert, dass sie JEE 1.5 verwenden (siehe javaee-5.jar) . Das sind dann alles Dinge eingecheckt die
benötigt werden (z.B. javax.servlet.Servlet).
Wir habe es inzwischen auf Servlet 3.1 umgestellt.


JEEServlets/JSPELTomcatJbossOracle
Weblogic
EJB
J2EE v1.3Servlets - 2.3 aus dem Jahr 2002Servlet 2.3 comes with JSP 1.2 without EL.
EL is to be provided by JSTL 1.0 and works in JSTL tags only
4.1.XunbekanntEJB 2.0
J2EE 1.4Servlets - 2.4) Servlet 2.4 comes with JSP/EL 2.0.5.5.XJBoss EAP 4.3EJB 2.1
JEE5Servlets 2.5 - 11. Mai 2006Servlet 2.5 comes with JSP/EL 2.1.6.0.XJBoss EAP 5EJB 3.0
JEE6(Servlet 3.0 - JSP2.2) 10. Dezember 2009Servlet 3.0 comes with JSP/EL 2.2 7.0.XJBoss EAP 6EJB 3.1
JEE7(Servlet 3.1 - JSP2.3) 12. Mai 2013 Servlet 3.1 comes with JSP 2.3 and EL 3.0. 8.5.XJBoss EAP 7WLS 12cR2EJB 3.2
JEE8
Jakarta EE8
(Servlet 4.0 - JSP2.3) 18. September 2017 Servlet 4.0 comes with JSP 2.3 and EL 3.0. 9.0.X
Java 8 and later
JBoss EAP 7.2unbekanntEJB
Jakarta EE9Servlet 5.0 - JSP 3.0 - EL 4.010.0.X
Java 8 and later
JBoss EAP VersionWildFly Version
JBoss EAP 6.0JBoss AS 7.1
JBoss EAP 6.1JBoss AS 7.2
JBoss EAP 6.2JBoss AS 7.3
JBoss EAP 6.3JBoss AS 7.4
JBoss EAP 6.4JBoss AS 7.5
JBoss EAP 7.0WildFly 10
JBoss EAP 7.1WildFly 11
JBoss EAP 7.2WildFly 14
JBoss EAP 7.3WildFly 18
Servlet Spec JSP Spec EL Spec WebSocket Spec Authentication (JASIC) Spec Apache Tomcat Version Latest Released Version Supported Java Versions
5.0 3.0 4.0 2.0 2.0 10.0.x 10.0.0 (beta) 8 and later
4.0 2.3 3.0 1.1 1.1 9.0.x 9.0.41 8 and later
3.1 2.3 3.0 1.1 1.1 8.5.x 8.5.61 7 and later
3.1 2.3 3.0 1.1 N/A 8.0.x (superseded) 8.0.53 (superseded) 7 and later
3.0 2.2 2.2 1.1 N/A 7.0.x 7.0.107 6 and later
(7 and later for WebSocket)
2.5 2.1 2.1 N/A N/A 6.0.x (archived) 6.0.53 (archived) 5 and later
2.4 2.0 N/A N/A N/A 5.5.x (archived) 5.5.36 (archived) 1.4 and later
2.3 1.2 N/A N/A N/A 4.1.x (archived) 4.1.40 (archived) 1.3 and later
2.2 1.1 N/A N/A N/A 3.3.x (archived) 3.3.2 (archived) 1.1 and later

Anpassung jnlp

In Laif werden an vielen Stellen jnlp-Files erzeugt.
Doch das ist nicht genug, der Dateiname bleibt dann mit der Endung .jsp.
Das hindert den Chrome allerdings die Datei mit JNLP auszuführen.
mit response.setHeader("Content-Disposition", "inline; filename=wsHdScanJnlp.jnlp"); setzen wird den Namen auf eine jnlp-Endung. Dadurch ist dass dann für den Chrome OK.

Backlog

Company

About

News

Contact