我的漫漫程序之旅

专注于JavaWeb开发
随笔 - 39, 文章 - 310, 评论 - 411, 引用 - 0
数据加载中……

flex3 Grid获取jsp数据的简单应用

很多时候我们需要在jsp展现数据用的都是table,来看看
用flex3的Grid怎么做。

测试数据:

 if object_id('product'is not null 
   
drop table product

create table product
(
  id 
int primary key identity(1,1),
  productName 
varchar(50),
  remark 
varchar(100)
)

declare @i int
set @i = 1
while @i < 100
begin
   
insert into product values('产品' + convert(varchar(3),@i),'备注' + convert(varchar(3),@i))
   
set @i = @i + 1
end


select * from product

grid需要的是xml数据源:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="list.send()">
    
<!--jsp请求-->
    
<!--<mx:HTTPService id="list" url="../index.jsp" />-->
    
<!--Servlet请求-->
    
<mx:HTTPService id="list" url="../productServlet" />
    
<!--grid数据绑定-->
    
<mx:DataGrid dataProvider="{list.lastResult.catalog.product}"  width="395" height="307" x="223" y="54" color="#F2C50F"></mx:DataGrid>
</mx:Application>

看一提供数据的Servlet:
package com;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dao.ProductDao;
import com.vo.Product;

@SuppressWarnings(
"serial")
public class ProductServlet extends HttpServlet
{
    
public void doGet(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, IOException
    
{

        response.setContentType(
"text/html");
        response.setCharacterEncoding(
"utf-8");
        PrintWriter out 
= response.getWriter();
        String str 
= "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
        str 
+= "<catalog>";
        ProductDao srv 
= new ProductDao();
        List
<Product> list = null;
        list 
= srv.getAll();
        Product product;
        
for (int i = 0; i < list.size(); i++)
        
{
            product 
= (Product) list.get(i);
            str 
+= "<product productId=\"" + product.getId() + "\">";
            str 
+= "<productName>" + product.getProductName() + "</productName>";
            str 
+=     "<remark>" + product.getRemark() +"</remark>";
            str 
+= "</product>";
        }

        str 
+= "</catalog>";
        out.write(str);
        
    }


    
public void doPost(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, IOException
    
{
        
this.doGet(request, response);
    }


}

当然你也可以写成jsp的形式:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.dao.ProductDao"%>
<%@page import="com.vo.Product"%>

<?xml version="1.0" encoding="utf-8"?>
<catalog>
<%
    ProductDao srv 
= new ProductDao();
    List
<Product> list = null;
    list 
= srv.getAll();
    Product product;
    
for (int i = 0; i < list.size(); i++)
    {
        product 
= (Product) list.get(i);
%>
<product productId="<%=product.getId()%>">
    
<productName><%=product.getProductName()%></productName>
    
<remark><%=product.getRemark()%></remark>
</product>
<%
    }
%></catalog>

HTTPService标签实例化一个对象它将会请求jsp和反序列化请求对象。url属性需要指定jsp或Servlet Action并且返回xml数据。其中list是HTTPService标签的id,lastResult属性包含了一个对象叫"catalog",相当于xml的catalog节点。在catalog节点下有节点数组product.这个list.lastResult.catalog.product相当于从HTTPService请求jsp返回的数组。

 如图:




posted on 2008-11-10 10:14 々上善若水々 阅读(2225) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: