让JSON请求和参数请求一样,可以通过Struts2的模型驱动给Action的类成员变量赋值(字段驱动与模型驱动)
来源:互联网 发布:淘宝如何加入消保 编辑:程序博客网 时间:2024/05/20 18:52
自己定义一个拦截器:
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.soumall.admin.utils.JsonUtils;
import java.util.HashMap;
import java.util.Map;
public class JSONParamReadInterceptor extends AbstractInterceptor {
private static final String jsonParamData = "jsonRequestParameter";
@Override
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext ctx = ActionContext.getContext();
Map<String,Object> requestParam = ctx.getParameters();
boolean excuteFlag = false;
if(requestParam!=null){
String[] jsonParamObj = (String[])requestParam.get(jsonParamData);
if(jsonParamObj!=null && jsonParamObj.length>0){
String jsonParamObjStr = (String)(jsonParamObj[0]);
requestParam = JsonUtils.json2Map(jsonParamObjStr,requestParam,null,null);
if(requestParam!=null && requestParam.size()>0){
excuteFlag = true;
for(Object key : requestParam.keySet()){
System.out.print(" key: "+key);
System.out.println(" value: "+requestParam.get(key));
}
}
}
}
if(!excuteFlag ){
System.out.println("No JSON Paramter Or JSON paramter's name have error");
}
return invocation.invoke();
}
}
/**
* 把JSONObject中的数据填充到Map中.
*
* @param <T> Object
* @param jsonObjectStr json字符串
* @param entity 需要填充数据的node
* @param excludes 不需要转换的属性数组
* @param datePattern 日期转换模式
* @return T
* @throws Exception java.lang.InstantiationException,
* java.beans.IntrospectionException,
* java.lang.IllegalAccessException
*/
public static Map<String,Object> json2Map(String jsonObjectStr,
Map<String,Object> map, String[] excludes, String datePattern)
throws Exception {
JSONObject jsonObject = JSONObject.fromObject(jsonObjectStr);
// JsonUtils.configJson(excludes, datePattern);
Set<String> excludeSet = createExcludeSet(excludes);
for (Object object : jsonObject.entrySet()) {
Map.Entry entry = (Map.Entry) object;
String propertyName = entry.getKey().toString();
if (excludeSet.contains(propertyName)) {
continue;
}
String propertyValue = entry.getValue().toString();
map.put(propertyName, propertyValue);
}
return map;
}
- 让JSON请求和参数请求一样,可以通过Struts2的模型驱动给Action的类成员变量赋值(字段驱动与模型驱动)
- Action处理请求参数(属性驱动与模型驱动)
- Struts2的属性驱动与模型驱动
- Struts2的属性驱动和模型驱动
- Struts2的属性驱动和模型驱动
- Struts2的模型驱动和属性驱动
- Spring MVC如何接收浏览器传递来的请求参数--request--形参--实体类封装(类比Struts2模型驱动)
- Action接收参数的3种方式(属性,域模型,模型驱动,struts2.1.8)
- Action接收参数的3种方式(属性,域模型,模型驱动,struts2.1.8)
- action类中属性驱动和模型驱动的区别
- Struts2的模型驱动
- Struts2的模型驱动
- Struts2的模型驱动
- Struts2的模型驱动
- Struts2的模型驱动
- struts2的模型驱动
- struts2的属性模型和驱动模型
- struts2 模型驱动Action属性 -标签 -Action属性不能赋值。
- 吴冠中
- 新手上路
- 学生系
- 文强之死
- 图书馆
- 让JSON请求和参数请求一样,可以通过Struts2的模型驱动给Action的类成员变量赋值(字段驱动与模型驱动)
- 实体类和配置文件生成表
- 什么是离散化?
- 工作态度的重要,看看你就明白了
- linux 下常用解压命令
- 查看 类的源码,和docs操作
- Sicily 1696 Flows in Grid(最大流)
- EL表达式
- 关于 MinGW 安装问题