• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hazendaz / displaytag / 1753

12 Feb 2026 03:17AM UTC coverage: 77.321% (-0.01%) from 77.334%
1753

push

github

web-flow
Merge pull request #1102 from hazendaz/renovate/javax-support-logback-monorepo

Update dependency ch.qos.logback:logback-classic to v1.5.29 (javax-support)

1438 of 2003 branches covered (71.79%)

Branch coverage included in aggregate %.

4034 of 5074 relevant lines covered (79.5%)

0.8 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.29
/displaytag/src/main/java/org/displaytag/util/DefaultRequestHelper.java
1
/*
2
 * SPDX-License-Identifier: MIT
3
 * See LICENSE file for details.
4
 *
5
 * Copyright 2002-2026 Fabrizio Giustina, the Displaytag team
6
 */
7
package org.displaytag.util;
8

9
import java.net.URLEncoder;
10
import java.nio.charset.Charset;
11
import java.util.Enumeration;
12
import java.util.HashMap;
13
import java.util.Map;
14
import java.util.Objects;
15

16
import javax.servlet.http.HttpServletRequest;
17
import javax.servlet.http.HttpServletResponse;
18

19
import org.apache.commons.lang3.ObjectUtils;
20
import org.apache.commons.lang3.StringUtils;
21
import org.displaytag.Messages;
22
import org.slf4j.Logger;
23
import org.slf4j.LoggerFactory;
24

25
/**
26
 * Default RequestHelper implementation.
27
 *
28
 * @see org.displaytag.util.Href
29
 * @see org.displaytag.util.RequestHelper
30
 */
31
public class DefaultRequestHelper implements RequestHelper {
32

33
    /**
34
     * logger.
35
     */
36
    private static Logger log = LoggerFactory.getLogger(DefaultRequestHelper.class);
1✔
37

38
    /**
39
     * original HttpServletRequest.
40
     */
41
    private final HttpServletRequest request;
42

43
    /**
44
     * original HttpServletResponse.
45
     */
46
    private final HttpServletResponse response;
47

48
    /**
49
     * Construct a new RequestHelper for the given request.
50
     *
51
     * @param servletRequest
52
     *            HttpServletRequest needed to generate the base href
53
     * @param servletResponse
54
     *            HttpServletResponse needed to encode generated urls
55
     */
56
    public DefaultRequestHelper(final HttpServletRequest servletRequest, final HttpServletResponse servletResponse) {
1✔
57
        this.request = servletRequest;
1✔
58
        this.response = servletResponse;
1✔
59
    }
1✔
60

61
    /**
62
     * Gets the href.
63
     *
64
     * @return the href
65
     *
66
     * @see org.displaytag.util.RequestHelper#getHref()
67
     */
68
    @Override
69
    public Href getHref() {
70
        final String requestURI = this.request.getRequestURI();
1✔
71
        // call encodeURL to preserve session id when cookies are disabled
72
        final Href href = new DefaultHref(this.response.encodeURL(requestURI));
1✔
73
        href.setParameterMap(this.getParameterMap());
1✔
74
        return href;
1✔
75
    }
76

77
    /**
78
     * Gets the parameter.
79
     *
80
     * @param key
81
     *            the key
82
     *
83
     * @return the parameter
84
     *
85
     * @see org.displaytag.util.RequestHelper#getParameter(java.lang.String)
86
     */
87
    @Override
88
    public String getParameter(final String key) {
89
        // actually simply return the parameter, this behaviour could be changed
90
        return this.request.getParameter(key);
1✔
91
    }
92

93
    /**
94
     * Gets the int parameter.
95
     *
96
     * @param key
97
     *            the key
98
     *
99
     * @return the int parameter
100
     *
101
     * @see org.displaytag.util.RequestHelper#getIntParameter(java.lang.String)
102
     */
103
    @Override
104
    public Integer getIntParameter(final String key) {
105
        final String value = this.request.getParameter(key);
1✔
106

107
        if (value != null) {
1✔
108
            try {
109
                return Integer.valueOf(value);
1✔
110
            } catch (final NumberFormatException e) {
×
111
                // It's ok to ignore, simply return null
112
                DefaultRequestHelper.log.debug(Messages.getString("RequestHelper.invalidparameter", //$NON-NLS-1$
×
113
                        new Object[] { key, value }));
114
            }
115
        }
116

117
        return null;
1✔
118
    }
119

120
    /**
121
     * Gets the parameter map.
122
     *
123
     * @return the parameter map
124
     *
125
     * @see org.displaytag.util.RequestHelper#getParameterMap()
126
     */
127
    @Override
128
    public Map<String, String[]> getParameterMap() {
129

130
        final Map<String, String[]> map = new HashMap<>();
1✔
131

132
        final Enumeration<String> parametersName = this.request.getParameterNames();
1✔
133

134
        while (parametersName.hasMoreElements()) {
1✔
135
            // ... get the value
136
            final String paramName = (String) parametersName.nextElement();
1✔
137

138
            this.request.getParameter(paramName);
1✔
139
            // put key/value in the map
140
            final String[] originalValues = ObjectUtils.getIfNull(this.request.getParameterValues(paramName),
1✔
141
                    new String[0]);
142
            final String[] values = new String[originalValues.length];
1✔
143

144
            for (int i = 0; i < values.length; i++) {
1✔
145
                values[i] = URLEncoder.encode(StringUtils.defaultString(originalValues[i]),
1✔
146
                        Charset.forName(Objects.toString(this.response.getCharacterEncoding(), "UTF8"))); //$NON-NLS-1$
1✔
147
            }
148
            map.put(paramName, values);
1✔
149

150
        }
1✔
151

152
        // return the Map
153
        return map;
1✔
154
    }
155

156
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc