六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 63|回复: 0

Struts 2与AJAX(第一部分)

[复制链接]

升级  37.33%

28

主题

28

主题

28

主题

秀才

Rank: 2

积分
106
 楼主| 发表于 2013-1-23 02:43:15 | 显示全部楼层 |阅读模式
在当今——Web 2.0概念铺天盖地的Internet环境下,简易的AJAX集成对于一个成功的WEB框架来说是不可或缺的。因此,Struts 2其中的一个重要的功能(Feature)就是“First-class AJAX support - Add interactivity and flexibility with AJAX tags that look and feel just like standard Struts tags(大意:一流的AJAX支持——通过AJAX标志增加互动性和灵活性,而且使用这些AJAX标志与普通的Struts标志同样简单)”。
实现原理

基于不重新发明轮子的原则,Struts 2并没有开发新的AJAX框架,而是使用时下Java EE平台中比较流行的AJAX框架——Dojo和DWR。
最近在Musachy Barroso等同志的无私奉献下,开发了Struts 2的JSON插件(Plugin),极大地方便了我们输出JSON结果(Result)。
JSON插件(Plugin)

在Struts 2的showcase中的AJAX部分,JSON的结果输出是通过Freemaker模板实现。这种方法在简易性和灵活性上都比不上JSON插件,所以JSON插件值得向大家五星推荐。
下面让我们看一个JSON插件的例子。
首先到以下网址http://code.google.com/p/jsonplugin/downloads/list下载JSON插件的JAR包,并将其加入你的WebContent\WEB-INF\lib下。
接下是本例子的Action代码:
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">package tutorial;

import java.util.ArrayList;
import java.util.List;

import com.googlecode.jsonplugin.annotations.JSON;
import com.opensymphony.xwork2.ActionSupport;

public class JsonPluginAction extends ActionSupport {
   
private static final long serialVersionUID = -6784977600668791997L;
   
   
private int bookId;
   
private String title;
   
private double price;
   
private List<String> comments;    
   
private transient String secret1;
   
private String secret2;

   @JSON(name
="ISBN")
   
public int getBookId() {
       
return bookId;
   }


   
public void setBookId(int bookId) {
       
this.bookId = bookId;
   }


   
public List<String> getComments() {
       
return comments;
   }


   
public void setComments(List<String> comments) {
       
this.comments = comments;
   }


   
public double getPrice() {
       
return price;
   }


   
public void setPrice(double price) {
       
this.price = price;
   }


   
public String getTitle() {
       
return title;
   }

   
   
public void setTitle(String title) {
       
this.title = title;
   }


   @Override
   
public String execute() {
       bookId
= 15645912;
       title
= "Max On Java";
       price
= 0.9999d;
       comments
= new ArrayList<String>(3);
       comments.add(
"It's no bad!");
       comments.add(
"WOW!");
       comments.add(
"No comment!");
       secret1
= "You can't see me!";
       secret2
= "I am invisible!";
       
return SUCCESS;
   }

}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表