目标:
Struts的初步使用:
1、Struts的配置
依赖->导入jar包->maven的pom.xml
做配置->web.xml配置中央控制器->配置过滤器
框架配置文件->mvc.xml->struts.xml
开发->写子控制器继承ActionSupport
2、Struts动态方法调用
3、Struts的传参
自定义mvc:Modeldriver接口传参;
Struts:①、Modeldriver接口传参;
②、set方法传参;
③、通过对象属性传参;
一、Struts 1、Struts的配置(pom.xml文件)导jar包:Struts、Tomcat
Struts:
org.apache.struts
struts2-core
2.5.13
Tomcat:
javax.servlet
javax.servlet-api
4.0.1
provided
配置过滤器
路径(org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter)
Ctrl+Shift+T:查找
在web.xml文件中做配置
struts org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter struts *.action
导入配置文件
struts.xml
2、Struts动态方法调用
struts-sy.xml
/bookEdit.jsp
Demo1Action
package com.lsy.one.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.lsy.one.entity.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
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("del方法.....");
return "bookEdit";
}
}
demo1.jsp(操作界面)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
struts的动态方法调用
新增
修改
删除
删除
bookEdit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
成功界面
3、Struts的传参
建立实体类user
package com.lsy.one.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 + "]";
}
}
三种传参方法:
(1)、Modeldriver接口传参
Demo1Action
package com.lsy.one.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.lsy.one.entity.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class Demo1Action extends ActionSupport{
private User user1=new User();
public User getUser1() {
return user1;
}
public void setUser1(User user1) {
this.user1 = user1;
}
public String list() throws Exception {
System.out.println("list方法.....");
System.out.println(user1);
System.out.println(sex);
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("age", 12);
req.setAttribute("hobby", "打王者");
return "bookEdit";
}
@Override
public User getModel() {
return user1;
}
}
demo1.jsp
ModelDriver接口传参
(2)、set方法传参
Demo1Action
package com.lsy.one.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.lsy.one.entity.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
private User user1=new User();
private String sex;
public User getUser1() {
return user1;
}
public void setUser1(User user1) {
this.user1 = user1;
}
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(user1);
System.out.println(sex);
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("age", 12);
req.setAttribute("hobby", "打王者");
return "bookEdit";
}
@Override
public User getModel() {
return user1;
}
}
demo1.jsp
set方法传参
结果展示
(3)通过对象属性传参
Demo1Action
package com.lsy.one.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.lsy.one.entity.User; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class Demo1Action extends ActionSupport implements ModelDriven{ private User user1=new User(); private User user2; public User getUser1() { return user1; } public void setUser1(User user1) { this.user1 = user1; } 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); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("age", 12); req.setAttribute("hobby", "打王者"); return "bookEdit"; } @Override public User getModel() { return user1; } }
demo1.jsp
4、Struts与Tomcat的集成对象属性传参
两种方式:
①、类置类
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("age", 12);
②、实现接口
实现两个接口:ServletRequestAware、ServletResponseAware
重写方法:
@Override
public void setServletResponse(HttpServletResponse arg0) {
this.resp=arg0;
}
@Override
public void setServletRequest(HttpServletRequest arg0) {
this.req=arg0;
}
Demo1Action 全界面
package com.lsy.one.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.lsy.one.entity.User; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class Demo1Action extends ActionSupport implements ModelDriven,ServletRequestAware,ServletResponseAware{ private HttpServletRequest req; private HttpServletResponse resp; private User user1=new User(); private String sex; private User user2; public User getUser1() { return user1; } public void setUser1(User user1) { this.user1 = user1; } public User getUser2() { return user2; } public void setUser2(User user2) { this.user2 = user2; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } 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("del方法....."); return "bookEdit"; } public String list() throws Exception { System.out.println("list方法....."); System.out.println(user1); System.out.println(sex); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("age", 12); req.setAttribute("hobby", "打王者"); return "bookEdit"; } @Override 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 }
结果展示
再见



