目标:
一:struts的配置
二:struts的动态方法调用
三:struts的传参
四:struts与tomcat的集成
一:struts的配置第一步:导依赖(pom.xml)
首先在左侧菜单栏右键
然后点击Maven Project,再点击Next
继续Next
然后Catalog选择Internal,Filter选择最后一个,然后继续Next
然后Group Id为包名,Artifact Id为项目名,然后Finish
然后这一步还需要将jar包改为1.8
修改pom.xml
4.0.0 com.lj Lj_hibernatewar 0.0.1-SNAPSHOT Lj_hibernate Maven Webapp http://maven.apache.org javax.servlet javax.servlet-api4.0.1 provided Lj_hibernate org.apache.maven.plugins maven-compiler-plugin3.7.0 1.8 1.8 UTF-8
右键项目找到Poperties
点击Project Facets,将Java改为1.8
两个方法都是修改jar,将Dynamic Web Module改为3.1,然后点击黄色条里面的链接
将Content directory改为src/mainwebapp就可以了
然后添加依赖
依赖:
javax.servlet javax.servlet-api4.0.1 provided org.apache.struts struts2-core2.5.13
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
com.lj
T269_struts
war
0.0.1-SNAPSHOT
T269_struts Maven Webapp
http://maven.apache.org
javax.servlet
javax.servlet-api
4.0.1
provided
org.apache.struts
struts2-core
2.5.13
T269_struts
org.apache.maven.plugins
maven-compiler-plugin
3.7.0
1.8
1.8
UTF-8
第二步:做配置(配置过滤器)
首先找到web.xml
修改成:
Archetype Created Web Application struts org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter struts *.action
注意:maven项目的结构
第三步:框架配置文件
将(struts-base.xml、struts-sy.xml、struts.xml)放入src/main/resources中
struts-base.xml
regex:.*
struts-sy.xml
struts.xml
第四步:开发写web层
首先创建一个web层(Demo1Action)
package com.lj.one.web;
import com.opensymphony.xwork2.ActionSupport;
public class Demo1Action extends ActionSupport{
public String add() throws Exception {
// TODO Auto-generated method stub
System.out.println("add方法、、、");
return "bookEdit";
}
public String del() throws Exception {
// TODO Auto-generated method stub
System.out.println("del方法、、、");
return "bookEdit";
}
public String edit() throws Exception {
// TODO Auto-generated method stub
System.out.println("edit方法、、、");
return "bookEdit";
}
}
然后创建两个页面
bookEdit
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
成功界面
demo1
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
struts动态方法调用
新增
修改
删除
然后写配置
/bookEdit.jsp
使用{2}方法
/{2}.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
struts动态方法调用
新增
修改
删除
新增
结果:
这个时候前三个点击就会报错了,因为后面那里没有改为第二种方法
三:struts的传参1:ModelDriver接口传参
新建一个实体类
package com.lj.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 + "]";
}
}
实现模型驱动接口
package com.lj.one.web; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.lj.one.entity.User; public class Demo1Action extends ActionSupport implements ModelDriven{ private User user1=new User(); public String add() throws Exception { // TODO Auto-generated method stub System.out.println("add方法、、、"); return "bookEdit"; } public String del() throws Exception { // TODO Auto-generated method stub System.out.println("del方法、、、"); return "bookEdit"; } public String edit() throws Exception { // TODO Auto-generated method stub System.out.println("edit方法、、、"); return "bookEdit"; } public String list() throws Exception { // TODO Auto-generated method stub System.out.println("list方法、、、"); System.out.println(user1); return "bookEdit"; } @Override public User getModel() { // TODO Auto-generated method stub return user1; } }
demo1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
struts动态方法调用
新增
修改
删除
新增
struts的传参
ModelDriver接口传参
set属性传参
通过对象属性传参
运行结果:
二:set属性传参
在子控制器新建一个sex
package com.lj.one.web; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.lj.one.entity.User; public class Demo1Action extends ActionSupport implements ModelDrivendemo1.xml{ private User user1=new User(); private String sex; public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String add() throws Exception { // TODO Auto-generated method stub System.out.println("add方法、、、"); return "bookEdit"; } public String del() throws Exception { // TODO Auto-generated method stub System.out.println("del方法、、、"); return "bookEdit"; } public String edit() throws Exception { // TODO Auto-generated method stub System.out.println("edit方法、、、"); return "bookEdit"; } public String list() throws Exception { // TODO Auto-generated method stub System.out.println("list方法、、、"); System.out.println(user1); System.out.println(sex); return "bookEdit"; } @Override public User getModel() { // TODO Auto-generated method stub return user1; } }
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
struts动态方法调用
新增
修改
删除
新增
struts的传参
ModelDriver接口传参
set属性传参
通过对象属性传参
结果展示:
三:通过对象属性传参
新建一个对象
package com.lj.one.web; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.lj.one.entity.User; public class Demo1Action extends ActionSupport implements ModelDriven{ 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 { // TODO Auto-generated method stub System.out.println("add方法、、、"); return "bookEdit"; } public String del() throws Exception { // TODO Auto-generated method stub System.out.println("del方法、、、"); return "bookEdit"; } public String edit() throws Exception { // TODO Auto-generated method stub System.out.println("edit方法、、、"); return "bookEdit"; } public String list() throws Exception { // TODO Auto-generated method stub System.out.println("list方法、、、"); // System.out.println(user1); System.out.println(sex); System.out.println(user2); return "bookEdit"; } @Override public User getModel() { // TODO Auto-generated method stub return user1; } }
demo1.xml
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
struts动态方法调用
新增
修改
删除
新增
struts的传参
ModelDriver接口传参
set属性传参
通过对象属性传参
结果展示:
四: struts与tomcat的集成
然后在bookEdit中调用
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
成功界面
${age}
方法二:
实现ServletRequestAware,ServletResponseAware接口
package com.lj.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.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.lj.one.entity.User; 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 { // TODO Auto-generated method stub System.out.println("add方法、、、"); return "bookEdit"; } public String del() throws Exception { // TODO Auto-generated method stub System.out.println("del方法、、、"); return "bookEdit"; } public String edit() throws Exception { // TODO Auto-generated method stub System.out.println("edit方法、、、"); return "bookEdit"; } public String list() throws Exception { // TODO Auto-generated method stub System.out.println("list方法、、、"); // System.out.println(user1); System.out.println(sex); System.out.println(user2); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("age", 12); req.setAttribute("hobby", "xp"); return "bookEdit"; } @Override public User getModel() { // TODO Auto-generated method stub return user1; } @Override public void setServletResponse(HttpServletResponse response) { // TODO Auto-generated method stub this.resp=response; } @Override public void setServletRequest(HttpServletRequest request) { // TODO Auto-generated method stub this.req=request; } }
结果展示:



