安装JSON插件提供了一种名为json的ResultType,一旦为某个Action指定了一个类型为json的Result,则该Result无需映射 到任何视图资源。因为JSON插件会负责将Action里的状态信息序列化成JSON格式的数据,并将该数据返回给客户端页面的 JavaScript。
简单地说,安装JSON插件允许我们在JavaScript中异步调用Action,而且Action不再需要使用视图资源来显示该Action里的状态信息,而是由JSON插件负责将Action里的状态信息返回给调用页面——通过这种方式,就可以完成Ajax交互。#t#
提供了一种可插拔方式来管理插件,安装Struts2的JSON插件与安装普通插件并没有太大的区别,一样只需要将Struts2插件的JAR文件复制到Web应用的WEB-INF/lib路径下即可,安装JSON插件按如下步骤进行:
- import com.googlecode.jsonplugin.annotations.JSON;
- import com.opensymphony.xwork2.Action;
- public class JsonTestAction {
- private String username;
- private String password;
- private boolean success;
- private Map map = new HashMap();
- public String checkLogin(){
- if(this.getPassword()!="" && this.getUsername()!=""){
- //***种方式 将要返回给页面的数据放到HashMap里生成数据格式“{"map"://{"success":true},"username":"ww"}”
- //map.put("success", true);
- //***种方式 将要返回给页面的数据放到变量里生成数据格式“{"map"://"success":true,"username":"ww"}”
- success = true;
- return Action.SUCCESS;
- }else{
- return Action.INPUT;
- }
- }
- @JSON(serialize=false)
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public boolean isSuccess() {
- return success;
- }