您可以编写一个 servlet 过滤器来执行此操作。但它确实需要一些编码工作。
这里是代码的链接 - http://www.acooke.org/cute/Forcinglow0.html
类似这样的东西 - 在这个 servlet 过滤器中将参数转换为小写
public final class LowerCaseParametersFilter implements Filter {
@Override
public void doFilter(final ServletRequest request,
final ServletResponse response,
final FilterChain chain)
throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
LOG.debug("Wrapping request");
chain.doFilter(new LowerCaseRequest((HttpServletRequest) request),
response);
} else {
LOG.warn(format("Not wrapping request: %s", request.getClass()));
chain.doFilter(request, response);
}
}
}
这是 xml 配置 - 你需要
<bean id="delegatingFilter"
class="org.springframework.web.filter.DelegatingFilterProxy"
p:targetBeanName="lowerParams"/>
<bean id="lowerParams"
class="com.isti.bss.mvc.LowerCaseParametersFilter"/>
我做了一些研究,发现了这个Case-insensitive query string request paramters
public class HttpCustomParamFilter implements Filter
{
private static class HttpServletRequestCustomeWrapper extends HttpServletRequestWrapper
{
private String[] parameterValues;
@Override
public String[] getParameterValues(String name)
{
Map<String, String[]> localParameterMap = super.getParameterMap();
// Handle case insensitivity of http request paramters like start, count, query, sort, filter etc.
if (localParameterMap != null && !localParameterMap.isEmpty())
{
parameterValues = new String[localParameterMap.size()];
for (String key : localParameterMap.keySet())
{
if (name.equalsIgnoreCase(key))
parameterValues = localParameterMap.get(key);
else
parameterValues = null;
}
}
return parameterValues;
}