是否有更简洁的方法来编写此方法?也许用正则表达式?需要帮助重构此方法
/**
* Find a parameter in the request.pathInfo. In a certain cases we
* will send the variables via the path.
*
* For example:
* normal request parameters - /ps/cmap?t=i&n=25&xid=1
* mapping via path would be - /ps/cmap/ti/n25?xid=1
*/
private static String findParamInPath(String paramName, HttpServletRequest request){
String pathInfo = request.getPathInfo();
int startIndex = pathInfo.indexOf("/" + paramName);
if(startIndex >= 0){
startIndex += (paramName.length()+1);
int endIndex = pathInfo.indexOf("/", startIndex);
if(endIndex < 0){
endIndex = pathInfo.indexOf("?", startIndex);
}
if(endIndex < 0){
endIndex = pathInfo.length();
}
String value = pathInfo.substring(startIndex, endIndex);
if (value != null) {
return value;
}
}
return null;
}
首先,去掉参数HttpServletRequest,只是通过另一个字符串,你只使用了'getPathInfo'从那个对象。 –
添加评论:你想要做什么? –
这将有助于举几个“单元测试”数据的例子;即样本输入和预期输出。 – Bohemian