java struts2 作用_struts2是什么?如何使用?

一、struts2是什么

1.概念

ba06de3d355e998629d940e1c5305687.png

2.struts2使用优势以及历史

946284ae125af2213ae527f8f62372cd.png

二、搭建struts2框架

1.导包

(解压缩)struts2-blank.war就会看到

0ac6b49b009d340e87fb2be6eaea1001.png

2.书写Action类

02e338fce35feaffb00b294fe7cc40b5.gif

69492539bfda1fc0dd64a871774fe661.gif

public class HelloAction {public String hello(){

System.out.println("hello world!"); return "success";

}

}View Code

3.书写src/struts.xml (记得加上dtd约束)

a70264bedba071f9c43895e30c16909f.gif

a6f6bfb9e5efc6cfafd687fde7eb4856.gif

<?xml version="1.0" encoding="UTF-8"?>/p>

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">/hello.jspView Code

4.将struts2核心过滤器配置到web.xml

filter-class记不住可以ctrl+shift+t 输入strutsPre来查找全类名

85bd6029f6c654b12b2c9f0311481df4.gif

448280d2c97e6d095479defb341908e9.gif

struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2/*

View Code

5.测试

32caab3609f482cbf013441216c55329.png

三、struts2访问流程&struts2架构

1.struts2架构

9fbe0b862e81f04b57432e4c2d541ed1.png

2.Aop编程(面向切面)

fbf52a1b37e64bc20668f9952a8c003a.png

四、配置详解

1.struts.xml配置详解

9de0693b50b82d8a1ae52d643a9ee46d.gif

5800dff6b657f9ccf236084decf6fcc1.gif

<?xml version="1.0" encoding="UTF-8"?>/p>

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">/hello.jspView Code

2.struts2常量配置

2.1 struts2默认常量配置位置

77e9020ac6ffb84776a422e801597ae2.png

2.2 修改struts2常量配置(方式先后也是加载顺序)

方式1:src/struts.xml(重要)

方式2:在src下创建struts.properties

struts.i18n.encoding=UTF8

方式3:在项目的web.xml中

struts.i18n.encoding

UTF-8

顺序:

5033cd795cc3442df1a96192a843e941.png

2.3 常量配置

54cca587997232f5e0c4cfc3c2385eee.gif

fbff6528fd26c5428326638f52cabdc6.gif

View Code

3.struts2配置的进阶

3.1动态方法调用(重要)

b592e4b788ba3abbccdde469c6beed34.gif

00d62a15a666f8764bfb6eea2d8f646b.gif

方式一

99c6fc5397520d048581bf18b5169476.gif

ffdd4e03e09e426ef20482a62e7a4e0f.gif

/hello.jsp方式二

3.2struts2中的默认配置(了解)

2bbdb538ff1e347a763aeeabbf96545d.gif

a141a6cd31f566f285e0a5dbe19df68a.gif

/hello.jspView Code

五、action类详解

Action类的书写方式

36731122b74209288d2613f1bd2edc3a.gif

c442460ebeb0e8c65377fbf29df8a114.gif

//方式1: 创建一个类.可以是POJO//POJO:不用继承任何父类.也不需要实现任何接口.//使struts2框架的代码侵入性更低.public class Demo3Action {

}方式一

b662a7ca53c3af559b4545beb451da84.gif

e910d0f85f81215d5221f37d1a67e22d.gif

//方式2: 实现一个接口Action// 里面有execute方法,提供action方法的规范.// Action接口预置了一些字符串.可以在返回结果时使用.为了方便public class Demo4Action implements Action {

@Overridepublic String execute() throws Exception {return null;

}

}方式二

505d5c6eede7ed17c703ba035553d27c.gif

3317896aebc6f652001218f5e1fc9054.gif

//方式3: 继承一个类.ActionSupport// 帮我们实现了 Validateable, ValidationAware, TextProvider, LocaleProvider .//如果我们需要用到这些接口的实现时,不需要自己来实现了.public class Demo5Action extends ActionSupport{

}方式三

六、练习:客户列表

图解:

844cb418dac00650354c6c78205b19a0.png

实现:

a2389dea761d4721e12b0b7ec7010359.gif

0bd43afe3fa16d1f4b5a1afc54e98117.gif

public class CustomerAction extends ActionSupport {private CustomerService cs = new CustomerServiceImpl(); public String list() throws Exception {//1 接受参数String cust_name = ServletActionContext.getRequest().getParameter("cust_name");//2 创建离线查询对象DetachedCriteria dc =DetachedCriteria.forClass(Customer.class);//3 判断参数拼装条件if(StringUtils.isNotBlank(cust_name)){

dc.add(Restrictions.like("cust_name", "%"+cust_name+"%"));

}//4 调用Service将离线对象传递List list = cs.getAll(dc);//5 将返回的list放入request域.转发到list.jsp显示ServletActionContext.getRequest().setAttribute("list", list);return "list";

}

}Web层代码

619a8ca536ef826eff264258adcc76d0.gif

63455f0bf378eeeb0609e223b3b006a0.gif

public List getAll(DetachedCriteria dc) {

Session session = HibernateUtils.getCurrentSession();//打开事务Transaction tx = session.beginTransaction();

List list = customerDao.getAll(dc); //关闭事务 tx.commit();return list;

}Service层代码

a525ae9848975f449f315d33ba437c39.gif

c697f2c0ccfd6a4e00a2058f12e2dc6f.gif

public List getAll(DetachedCriteria dc) {//1 获得sessionSession session = HibernateUtils.getCurrentSession();//2 将离线对象关联到sessionCriteria c = dc.getExecutableCriteria(session);//3 执行查询并返回return c.list();

}Dao层代码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值