java spring mvc 怎么在程序内更改url的参数名
2个回答
展开全部
方法一:String username=request.getParameter("user_name");//得到参数值
GetInModel gm=new GetInModel();
gm.setUsername(username);//已经放入
方法二:private String username;
private String user_name;
public String getUserName(){
return user_name;
}
其他的 全部不需要动,仅需要加一个方法即可。。
在后续的处理中,可以直接使用 getUserName方法。
方法三:
public class ParameterChangeArgumentResolver implements WebArgumentResolver {
@Override
public Object resolveArgument(MethodParameter methodParameter, NativeWebRequest webRequest) throws Exception {
Class<?> parameterType = methodParameter.getParameterType();
if (parameterType != null) {
//获取request
HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
//取得request 中的参数
Map<String, Object> map = new HashMap<String, Object>();
//解析参数到新的Map中
for (Map.Entry<String, String[]> temp : request.getParameterMap().entrySet()) {
map.put(StringUtil.remove(temp.getKey().toLowerCase(), '_'), temp.getValue()[0]);
}
//把Map转成obj
return MapUtil.mapToObj(map, parameterType);
}
return UNRESOLVED;
}
public static Object mapToObj(Map<String, Object> map, Class<?> beanClass) throws Exception {
if (map == null) {
return null;
}
Object obj = beanClass.newInstance();
BeanUtils.populate(obj, map);
return obj;
}
}
最后配置<mvc:annotation-driven>
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="..ParameterChangeArgumentResolver">
</bean>
</mvc:argument-resolvers>
</mvc:annotation-driven>
GetInModel gm=new GetInModel();
gm.setUsername(username);//已经放入
方法二:private String username;
private String user_name;
public String getUserName(){
return user_name;
}
其他的 全部不需要动,仅需要加一个方法即可。。
在后续的处理中,可以直接使用 getUserName方法。
方法三:
public class ParameterChangeArgumentResolver implements WebArgumentResolver {
@Override
public Object resolveArgument(MethodParameter methodParameter, NativeWebRequest webRequest) throws Exception {
Class<?> parameterType = methodParameter.getParameterType();
if (parameterType != null) {
//获取request
HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
//取得request 中的参数
Map<String, Object> map = new HashMap<String, Object>();
//解析参数到新的Map中
for (Map.Entry<String, String[]> temp : request.getParameterMap().entrySet()) {
map.put(StringUtil.remove(temp.getKey().toLowerCase(), '_'), temp.getValue()[0]);
}
//把Map转成obj
return MapUtil.mapToObj(map, parameterType);
}
return UNRESOLVED;
}
public static Object mapToObj(Map<String, Object> map, Class<?> beanClass) throws Exception {
if (map == null) {
return null;
}
Object obj = beanClass.newInstance();
BeanUtils.populate(obj, map);
return obj;
}
}
最后配置<mvc:annotation-driven>
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="..ParameterChangeArgumentResolver">
</bean>
</mvc:argument-resolvers>
</mvc:annotation-driven>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询