首先肯定是一个jsp页面,无论是链接还是按钮的形式,肯定有地址,有地址就有action
Struts2里面的action格式是:名称.action
如下所示:
index.jsp
首先一个连接的格式是:名称.action
action是一个请求
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
首页
product-input.action
点击链接,然后会因为struts.xml文件的配置进行请求转发
/WEB-INF/pages/input.jsp
跳转到input.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
My JSP 'input.jsp' starting page
当我们填好表单里面的信息的时候,点击submit按钮,请求会到helo.action;
我们可以看一下struts.xml配置文件,找到
class就是类的路径,method就是class里面的类调用的方法名称,
/WEB-INF/pages/input.jsp
/WEB-INF/pages/details.jsp
我们可以认为等同于是Product.save();
package cn.com.action;
public class Product {
private Integer productId;
private String productName;
private String productDesc;
private String productPrice;
public Integer getProductId() {
return productId;
}
public void setProductId(Integer productId) {
this.productId = productId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getProductDesc() {
return productDesc;
}
public void setProductDesc(String productDesc) {
this.productDesc = productDesc;
}
public String getProductPrice() {
return productPrice;
}
public void setProductPrice(String productPrice) {
this.productPrice = productPrice;
}
public String save() throws Exception{
return "helloworlds";
}
}
Product.save();返回的结果是一个字符串,这个字符串如果和struts.xml配置文件里面的
details,jsp页面如下:
insert title here
ProductId:${productId }
ProductName:${productName }
ProductDesc:${productDesc }
ProductPrice:${productPrice }
返回的是表单的内容
结果截图如下: