Apache JSTL dependency aggregation module for Eclipse Jetty web applications
npx @tessl/cli install tessl/maven-org-eclipse-jetty--apache-jstl@11.0.00
# Apache JSTL Module
1
2
A dependency aggregation module for Eclipse Jetty that bundles Apache JSTL (JavaServer Pages Standard Tag Library) dependencies, enabling JSP tag library functionality in Jetty-based web applications. This module provides a JAR packaging solution for JSTL integration that is compatible with Jetty's modular architecture.
3
4
## Package Information
5
6
- **Package Name**: apache-jstl
7
- **Package Type**: Maven
8
- **Group ID**: org.eclipse.jetty
9
- **Language**: Java
10
- **Installation**: Include in Maven `pom.xml` dependencies
11
12
## Maven Dependency
13
14
```xml
15
<dependency>
16
<groupId>org.eclipse.jetty</groupId>
17
<artifactId>apache-jstl</artifactId>
18
<version>11.0.0</version>
19
</dependency>
20
```
21
22
## Basic Usage
23
24
### Jetty Module Activation
25
26
Enable JSTL support in Jetty by activating the module:
27
28
```bash
29
java -jar jetty-start.jar --module=apache-jstl
30
```
31
32
### JSP Page Integration
33
34
Use JSTL tags in JSP pages by declaring the tag library:
35
36
```jsp
37
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
38
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
39
40
<!-- Example: URL generation with parameters -->
41
<c:url value="/ref.jsp" var="refUrl">
42
<c:param name="id" value="123"/>
43
</c:url>
44
45
<!-- Example: Exception handling -->
46
<c:catch var="catchException">
47
<fmt:parseNumber var="parsedNum" value="invalid_number" />
48
</c:catch>
49
50
<c:if test="${catchException != null}">
51
Error occurred: ${catchException.message}
52
</c:if>
53
```
54
55
## Architecture
56
57
This module follows Jetty's dependency aggregation pattern:
58
59
- **JAR Wrapper**: Packages external JSTL dependencies into a single JAR for Maven compatibility
60
- **Module Integration**: Provides Jetty module descriptor for seamless integration
61
- **Container JAR Pattern**: Configures container include patterns for proper classpath loading
62
- **Test Infrastructure**: Includes validation tests for JSTL functionality
63
64
The module addresses Maven Dependency plugin limitations by providing JAR packaging for what is essentially a dependency collection, enabling Jetty's modular system to properly copy and include JSTL libraries.
65
66
## Capabilities
67
68
### JSTL Core Tag Library
69
70
Provides core JSTL functionality including conditionals, loops, URL manipulation, and exception handling through the `http://java.sun.com/jsp/jstl/core` tag library.
71
72
```java { .api }
73
// JSP Tag Library URI
74
String CORE_TAGLIB_URI = "http://java.sun.com/jsp/jstl/core";
75
76
// Key tags available:
77
// <c:url> - URL generation and encoding
78
// <c:param> - URL parameter addition
79
// <c:catch> - Exception handling
80
// <c:if> - Conditional processing
81
// <c:set> - Variable assignment
82
// <c:out> - Output with escaping
83
```
84
85
[JSTL Core Tags](./jstl-core.md)
86
87
### JSTL Formatting Tag Library
88
89
Provides internationalization and formatting capabilities through the `http://java.sun.com/jsp/jstl/fmt` tag library for number, date, and message formatting.
90
91
```java { .api }
92
// JSP Tag Library URI
93
String FMT_TAGLIB_URI = "http://java.sun.com/jsp/jstl/fmt";
94
95
// Key tags available:
96
// <fmt:parseNumber> - Number parsing with locale support
97
// <fmt:formatNumber> - Number formatting
98
// <fmt:parseDate> - Date parsing
99
// <fmt:formatDate> - Date formatting
100
// <fmt:message> - Internationalized messages
101
```
102
103
[JSTL Formatting](./jstl-formatting.md)
104
105
### Jetty Integration Utilities
106
107
Configuration utilities for integrating JSTL with Jetty WebAppContext, including container include patterns and temporary directory setup.
108
109
```java { .api }
110
public class JspConfig {
111
/**
112
* Initialize WebAppContext for JSP and JSTL processing.
113
*
114
* @param context WebAppContext to configure
115
* @param baseUri Base URI for the web application
116
* @param scratchDir Temporary directory for JSP compilation
117
*/
118
public static void init(WebAppContext context, URI baseUri, File scratchDir);
119
}
120
```
121
122
[Jetty Integration](./jetty-integration.md)
123
124
## Bundled Dependencies
125
126
This module aggregates the following external dependencies:
127
128
- **jakarta.servlet.jsp.jstl-api**: JSTL API specifications
129
- **taglibs-standard**: Apache JSTL implementation (Morpher Jasper taglibs-standard)
130
131
## Types
132
133
```java { .api }
134
// Core Jetty types for configuration
135
class WebAppContext {
136
void setAttribute(String name, Object value);
137
void setWar(String war);
138
void setResourceBase(String resourceBase);
139
}
140
141
// Standard Java types for configuration
142
class URI {
143
String toASCIIString();
144
}
145
146
class File {
147
// Standard file operations
148
}
149
```