2、web.xml配置org.apache.struts struts2-core2.5.13 javax.servlet javax.servlet-api4.0.1 provided
3、框架配置文件配置(三个)Archetype Created Web Application struts org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter struts *.action
struts-base.xml
regex:.*
struts.xml
struts-sy.xml 里面做配置
二、动态方法调用 1、第一种调用方式/bookEdit.jsp
/bookEdit.jsp
新增
修改
删除
Demo1Action :
package com.ysq.web;
import com.opensymphony.xwork2.ActionSupport;
public class Demo1Action extends ActionSupport{
public String add() throws Exception {
System.out.println("add方法....");
return "bookEdit";
}
public String del() throws Exception {
System.out.println("del方法....");
return "bookEdit";
}
public String edit() throws Exception {
System.out.println("edit方法....");
return "bookEdit";
}
}
demo1.jsp(操作界面):
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
struts的动态方法调用
新增
修改
删除
删除
运行结果:
2、第二种调用方式
/{2}.jsp
三、传参 1、Modeldriver接口传参删除
①、新建实体类
package com.ysq.entity;
public class User {
private String uid;
private String uname;
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
@Override
public String toString() {
return "User [uid=" + uid + ", uname=" + uname + "]";
}
}
②、Demo1Action 继承 ActionSupport 实现 ModelDriven
package com.ysq.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.ysq.entity.User; public class Demo1Action extends ActionSupport implements ModelDriven,ServletRequestAware,ServletResponseAware{ private User user1=new User(); public String list() throws Exception { System.out.println("list方法...."); System.out.println(user1); return "bookEdit"; } public User getModel() { return user1; } }
③、 demo1.jsp:
Modeldriver传参
运行结果:
2、set方法传参
①、Demo1Action
package com.ysq.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.ysq.entity.User; public class Demo1Action extends ActionSupport implements ModelDriven,ServletRequestAware,ServletResponseAware{ private User user1=new User(); private String sex; public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String list() throws Exception { System.out.println("list方法...."); System.out.println(sex); return "bookEdit"; } public User getModel() { return user1; } }
②、 demo1.jsp :
set方法传参
运行结果:
3、通过对象属性传参(可同时传多个对象)
①、Demo1Action
package com.ysq.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.ysq.entity.User; public class Demo1Action extends ActionSupport implements ModelDriven,ServletRequestAware,ServletResponseAware{ private User user1=new User(); private String sex; private User user2; public User getUser2() { return user2; } public void setUser2(User user2) { this.user2 = user2; } public String list() throws Exception { System.out.println("list方法...."); // System.out.println(user1); // System.out.println(sex); System.out.println(user2); return "bookEdit"; } public User getModel() { return user1; } }
②、demo1.jsp
对象属性传参
运行结果:
四、Struts与Tomcat的集成两种方式:
1、类置类(偶尔用一下,用的不多)public String list() throws Exception {
//内置类
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("age", 18);
}
在bookEdit.jsp界面接收
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
成功界面
内置类:${age}
运行结果:
2、实现接口①、 Demo1Action 继承ActionSupport 实现ModelDriven
②、重写ServletRequestAware,ServletResponseAware方法
package com.ysq.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.ysq.entity.User; public class Demo1Action extends ActionSupport implements ModelDriven,ServletRequestAware,ServletResponseAware{ private User user1=new User(); private String sex; private User user2; private HttpServletRequest req; private HttpServletResponse resp; public String list() throws Exception { System.out.println("list方法...."); System.out.println(user1); // System.out.println(sex); // System.out.println(user2); //内置类 HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("age", 18); //实现接口 req.setAttribute("hobby", "xxxxxxxxxx"); return "bookEdit"; } public User getModel() { return user1; } @Override public void setServletResponse(HttpServletResponse arg0) { this.resp=arg0; } @Override public void setServletRequest(HttpServletRequest arg0) { this.req=arg0; } }
bookEdit.jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
成功界面
内置类:${age}
接口:${hobby}
运行结果:



