您的位置:首页 > 编程语言 > Java开发

Struts2.0 Action自己的认识

2009-09-07 22:49 357 查看
举例:
public class ProductAction extends ActionSupport {
private ProductManager productManager;
private Product product;
private String queryString;

public void setQueryString(String queryString){
this.queryString=queryString;
}

public Product getProduct() {
return product;
}

/*public void setProduct(Product product) {
this.product = product;
}*/

public void setProductManager(ProductManager productManager){
this.productManager=productManager;
}

public String insert(){
System.out.println("---product="+product+"---");
System.out.println("---product.name="+product.getName()+"---");
productManager.insertProduct(product);
return SUCCESS;
}

public String list() {
System.out.println("---list---");
Map request = (Map) ActionContext.getContext().get("request");
request.put("list", productManager.findProducts());
return SUCCESS;
}

}

Input.jsp
<s:form action="insert.action" method="post" >
<s:textfield name="product.name" label="商品名称"/>
<s:textfield name="product.price" label="商品价格"/>
<s:textfield name="product.brand" label="商品品牌"/>
<s:textarea name="product.description" label="商品描述"/>
<s:submit></s:submit>
</s:form>

List.jsp
<s:iterator value="#request.list" id="product">
<tr>
<td><s:property value="#product.id"/></td>
<td><s:property value="#product.name"/></td>
<td><s:property value="#product.price"/></td>
<td><s:property value="#product.brand"/></td>
<td><s:property value="#product.description"/></td>
</tr>
</s:iterator>

如果给getProduct加上注释,则表单提交过来的数据显示为空,即Form无法提交数据到Action中。从而可知,在Action中,是通过getter方法来获得表单数据的。

Action除了从Form获得数据外,还将处理的数据传递出去(供页面展示)。如:request.put("list", productManager.findProducts());
将结果集放在request.list中,在页面list.jsp通过request.list来获得数据。

Action中将数据当做一个对象或者一个容器(List)传给页面。
1. 当只传递一个对象到显示页面时。
public String updatepre(){
product = productManager.findProdcut(product.getId());
return SUCCESS;
}
<s:textfield name="product.name" value="%{product.name}" label="商品名称"/>

2. 当传递一个容器到显示页面时。
request.put("list", productManager.findProducts());
<s:iterator value="#request.list" id="product">

参考:http://www.360doc.com/content/081124/20/69543_1994053.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: