很多时候我们需要在jsp展现数据用的都是table,来看看
用flex3的Grid怎么做。
测试数据:
if object_id('product') is not null
drop table product
![](/Images/OutliningIndicators/None.gif)
create table product
(
id int primary key identity(1,1),
productName varchar(50),
remark varchar(100)
)
![](/Images/OutliningIndicators/None.gif)
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
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
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>
![](/Images/OutliningIndicators/None.gif)
看一提供数据的Servlet:
package com;
![](/Images/OutliningIndicators/None.gif)
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
![](/Images/OutliningIndicators/None.gif)
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
![](/Images/OutliningIndicators/None.gif)
import com.dao.ProductDao;
import com.vo.Product;
![](/Images/OutliningIndicators/None.gif)
@SuppressWarnings("serial")
public class ProductServlet extends HttpServlet
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/InBlock.gif)
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++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
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);
}
![](/Images/OutliningIndicators/InBlock.gif)
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.doGet(request, response);
}
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/None.gif)
当然你也可以写成jsp的形式:
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%
@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%
@page import="com.dao.ProductDao"%>
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%
@page import="com.vo.Product"%>
![](/Images/OutliningIndicators/None.gif)
<?xml version="1.0" encoding="utf-8"?>
<catalog>
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%![](http://www.blogjava.net/Images/dot.gif)
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>
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%![](http://www.blogjava.net/Images/dot.gif)
}
%></catalog>
![](/Images/OutliningIndicators/None.gif)
HTTPService标签实例化一个对象它将会请求jsp和反序列化请求对象。url属性需要指定jsp或Servlet Action并且返回xml数据。其中list是HTTPService标签的id,lastResult属性包含了一个对象叫"catalog",相当于xml的catalog节点。在catalog节点下有节点数组product.这个list.lastResult.catalog.product相当于从HTTPService请求jsp返回的数组。
如图:
![](/images/blogjava_net/supercrsky/flex_grid.jpg)