json插件(struts2-json-plugin)的使用
struts2-json-plugin的使用
struts2 提供,简化开发,简化json转换。
第一步:引入插件
将插件jar拷贝进来即可。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>${struts2.version}</version>
</dependency>
第二步:将要转换为json的java对象压入root栈顶
插件(JSONResult)自动将java对象转换为json,并且写入响应。
//对象压入root栈顶
ActionContext.getContext().getValueStack().push(java对象);
第三步:返回json类型的结果集类型上
@Controller("userAction")
@Scope("prototype")
@Namespace("/")
@ParentPackage("json-default")//继承了json-default,才能用json类型的结果集
public class UserAction extends BaseAction<User> {
/**
* 用户修改密码
* @return
* @throws Exception
* @author aric
*/
@Action(value="user_editPassword",results={@Result(name="json",type="json")})//json结果集
public String editPassword() throws Exception {
//获取登陆用户
User loginUser = (User) getAttributeToSession("loginUser");
//将登陆用户id放入model中
model.setId(loginUser.getId());
//页面结果
HashMap<String,Object> resultMap = new HashMap<String,Object>();
try {
//调用service进行修改密码
userService.updateUserPassword(model);
//修改成功
resultMap.put("result", true);
} catch (Exception e) {
e.printStackTrace();
//修改失败
resultMap.put("result", false);
}
//将结果压入栈顶
ActionContext.getContext().getValueStack().push(resultMap);
//返回到json类型的结果集上面
return "json";
}
}