新闻正文

Struts 2与AJAX初步入门(1)

来源:JAVA天堂  Struts  2007-6-14 01:06:43 网友评论 0 条 字体:[ ] ~我要投稿!

在当今——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包,并将其加入你的WebContentWEB-INFlib下。

接下是本例子的Action代码:

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;
   }
}
清单1 src/tutorial/JsonPluginAction.java

以上代码值得注意的是,通过@JSON的JAVA注释(Annotation),我们可以改变JSON结果的属性名称,另外带有transient修饰符与没有Getter方法的字段(field)都不会被串行化为JSON。

然后,我们来配置一下此Action,代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>    
    <package name="Struts2_AJAX_DEMO" extends="json-default">
        <action name="JsonPlugin" class="tutorial.JsonPluginAction">
            <result type="json" />
        </action>            
    </package>
</struts>
清单2 src/struts.xml

收藏到ViVi   收藏此页到365Key
上一篇:JTable上点击右键并弹出菜单的实现
下一篇:static的用法
用户名:新注册) 密码: 匿名评论 [所有评论]
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
本栏搜索
  • Google
   网站首页 -  网站地图 -  技术学习 -  网站投稿 -  帮助中心
Copyright 2003-2008 www.javah.net All Rights Reserved
2008 如果你喜欢本站 请收藏本站 并推荐给你的朋友一起分享