记录一下老师上课的笔记。
1.先导包
正常导入struts2的jar包
要jar包留言
2.配置web.xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.在src下创建struts.xml
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="abc" namespace="/" extends="struts-default">
<!-- action 与控制层类对应 与jsp做交互,如何进入类下的方法如何接收值,如何传值,如何跳出类进入jsp,name与url有关 -->
<action name="user!*"
class="com.my.controller.UserController" method="{1}">
<!-- 请求转发 -->
<result name="query">query.jsp</result>
<!-- 重定向 -->
<result name="into" type="redirect">user!query</result>
</action>
</package>
</struts>
注意:
class后面的路径是控制层对应的类。继承"struts-default"
action是与jsp交互,name=“user!*”,{1}、{2}表示第一第二个占位符,*为通配符
通过action name的通配匹配,获得占位符,可以使用占位符放在result和method、class中替代匹配的字符。
就代表着,(url里通过项目名/user!方法名)的约定进行请求转发或者重定向操作
4.简单的javaBean用于测试
切记的是getter,setter不能忘记
package com.my.pojo;
public class Student {
private String id;
private String name;
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
5.controller层
依然切记的是getter,setter不能忘记,每调一个方法,都要进行getter和setter用于接传值
public class UserController {
//strut2 接传值的
//1.在类下声明对象,2.将这个对象(传递值)创建get set方法
//向jsp传递一个集合
List<Map> list =new ArrayList<Map>();
//在方法中接收值
String id =null;
Student stu = new Student();
public String query(){//action name=stu!* method={1}
//list = service.query();
list =new ArrayList<Map>();
Map map =new HashMap();
map.put("name", "张三");
map.put("age", "12");
list.add(map);
Map map2 =new HashMap();
map2.put("name", "李四");
map2.put("age", "22");
list.add(map2);
return "query";//result标签---》name---》jsp
}
//http://localhost:80/struts2/stu!add?stu.name=avs&stu.password=123
//接收一个对象
public String add(){
System.out.println("struts 添加"+stu.getName()+stu.getPassword());
return "into";//result标签---》name---》stu!query
}
//http://localhost:8081/struts0304/stu!del?id=12
//删除的方法中接收id
public String del(){
System.out.println("struts 删除 接收的id是"+id);
return "into";
}
public String update(){
System.out.println("struts 修改保存");
return "into";
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public List<Map> getList() {
return list;
}
public void setList(List<Map> list) {
this.list = list;
}
public Student getStu() {
return stu;
}
public void setStu(Student stu) {
this.stu = stu;
}
}
注意:返回值不能是void,是result的标签里的类型
用于测试的jsp
<body>
${list}
</body>
5.检测
在list中添加map返回到jsp
使用添加方法
注意:url里占位符直接用方法名,添加值需要对象名打点
url: