属性驱动:将表单的提交数据与java基本类型数据相对应
类似sPRingmvc的表单绑定,可以与javabean 的属性对应如
实体类:
package com.chet.domain;public class Product { String productID; String productName; String productPrice; public String getProductID() { return productID; } public void setProductID(String productID) { this.productID = productID; } public String getProductName() { return productName; } public void setProductName(String productName) { this.productName = productName; } public String getProductPrice() { return productPrice; } public void setProductPrice(String productPrice) { this.productPrice = productPrice; } public String toString() { return this.getProductID()+this.getProductName()+this.getProductPrice(); }}action类:这里定义了一个product实体 在请求提交到这个Action的时候会通过setter实例这个实体。所以必须有setter 与getter方法、
package com.chet.action;import java.util.ArrayList;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import org.apache.struts2.ServletActionContext;import com.chet.domain.Product;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class TestAction extends ActionSupport { /** * */ private static final long serialVersionUID = 1L; private Product product; private static Logger logger = LogManager.getLogger(TestAction.class.getName()); @Override public String execute() throws Exception { System.out.println("test -------------------"); logger.info("无奈发生的"); return SUCCESS; } public String ognlTest() { System.out.println(" test start-------------------"); ActionContext ctx = ActionContext.getContext(); ctx.getapplication().put("testFirst", "我是applicatio"); ctx.getsession().put("test", "我是session"); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("test", "我是request"); return SUCCESS; } public Product getProduct() { return product; } public void setProduct(Product product) { this.product = product; }}jsp页面
<p>test OGNL</p> <s:property value="#request.test"/> <s:property value="#session.test"/> <s:property value="#application.test"/> <s:property value="product.productName"/> <s:property value="product.productID"/> <s:property value="product.productPrice"/>通过浏览器访问http://localhost:8080/SSH_Test/TestAction_ognlTest.action?product.productName=fsdf&product.productID=11将会在网页上打印出pruduct的属性值。
如果通过form表单提交则
<input type="text" name="product.productID" value=""/><input type="text" name="product.productName" value=""/>如果使用上面的代码,请注意struts的配置文件,这里主要是通过通配符来访问到Action里面的方法 ,具体请参考我的文章 —struts2通配符
新闻热点
疑难解答