json取得后台值的方法

xml的写法:

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

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

<constant value="true" name="struts.devMode"/>-

<package name="basicstruts2" extends="struts-default">

-<action name="index"><result>/index.jsp</result></action>

-<action name="test"><result name="success">/index.jsp</result></action>

<!-- 表单重复提交 --> -

<action name="token" class="cn.itcast.struts2.TokenAction">

<result name="success">/index.jsp</result>

<result name="invalid.token">/token_error.jsp</result>

<!-- 重新定义拦截器 -->

<interceptor-ref name="defaultStack"/>

<!-- 在 struts-default.xml中定义的默认拦截器栈-->

<interceptor-ref name="token"/>

</action>

</package>

<!-- 要点一: Action 的package 必须继承 json-default 包 -->

-<package name="myjson" extends="json-default">

-<action name="checkUserName" class="cn.itcast.struts2.CheckUserNameAction">

<!-- 要点二 :结果集类型 必须指定为 json -->

<!-- 默认将值栈顶端对象返回,如果没有实现ModelDriven ,Action就是顶端对象 -->

<result type="json"/>

</action>-

<action name="productlist" class="cn.itcast.struts2.ProductListAction">-

<result type="json">

当结果类型为json时,不用配结果页面,,因为数据肯定是回到原来提交的页面 如果设置root属性,修改返回根对象 指定action作为根对象

<param name="root">action</param>//注意,默认是返回栈顶的对象,栈顶是ModelDriven里的东西,如果只想要action里的东西,就要配这个。

只想要 商品的name属性 和price属性

<param name="includeProperties">products\[\d+\]\.name,products\[\d+\]\.price</param>

</result>

</action>

</package>

</struts>

action的写法:

package cn.itcast.struts2;

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

import org.apache.struts2.json.annotations.JSON;

import cn.itcast.domain.Product;

import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven;

/**  * 获得商品列表  *  * @author seawind  *  */

public class ProductListAction extends ActionSupport implements   ModelDriven<Product> {

        private Product product = new Product();

//设置了这个注解,product就不会还回到ajax的回调函数里面

       @JSON(serialize = false)  

        public Product getModel() {

             return product;

        }

        public String execute() throws Exception {

                products = new ArrayList<Product>();

                products.add(new Product("冰箱", 1000, 50));

                products.add(new Product("洗衣机", 1500, 100));   return SUCCESS;  }

                private List<Product> products;

                public List<Product> getProducts() {

                return products;  

       }

  }

posted @ 2013-10-04 19:26  sadan  阅读(343)  评论(0)    收藏  举报