屬性驅(qū)動:將表單的提交數(shù)據(jù)與java基本類型數(shù)據(jù)相對應(yīng)
類似sPRingmvc的表單綁定,可以與javabean 的屬性對應(yīng)如
實體類:
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("無奈發(fā)生的"); 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將會在網(wǎng)頁上打印出pruduct的屬性值。
如果通過form表單提交則
<input type="text" name="product.productID" value=""/><input type="text" name="product.productName" value=""/>如果使用上面的代碼,請注意struts的配置文件,這里主要是通過通配符來訪問到Action里面的方法 ,具體請參考我的文章 —struts2通配符
新聞熱點
疑難解答