java中struts2框架使用要点总结

本文详细介绍了Struts2框架的核心特性,包括如何获取前台输入数据、模型驱动的应用、包的作用及配置方法等内容,并探讨了Action的多种定义方式及其与Servlet通信的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[color=brown][color=orange][/color][/color]
[b]一[/b]Struts2如何获得前台的输入数据
1属性驱动PropertyDriven
1-1:当Action中属性名与表单name一致时,下面的表单提交后自动会将值赋给同名属性。
这种情况适用在Action属性较少时使用。
注意:action中要写对应属性的get set 方法
1-2:Action中属性不再是String\Integer\Double这些基本类型,而是POJO对象,那么表单元素的name值前增加对象变量名便可Action的POJO对象同名属性进行赋值
这种用法很方便,可以直接对pojo属性进行赋值。但Action与JSP页面存在耦合,因为HTML编写者必须要知道Action中的属性名。
注意:action中要写pojo对象这个属性的 get set 方法
此方法的缺陷:这种用法很方便,可以直接对pojo属性进行赋值。但Action与JSP页面存在耦合,因为HTML编写者必须要知道Action中的属性名。
有没有两全其美的办法?-----引出模型驱动

2模型驱动ModelDriven
要使用ModelDriven,Action必须实现ModelDriven接口的getModel()方法
实例:public class UserAction implements ModelDriven {
private UserService userService = new UserService();
private User user = new User();
public String add() {
userService.add(user);
return "success";
}

public Object getModel() {
return user;
}
}
[b]二[/b]struts2中的package作用
Struts2中的包类似于Java中的包,提供将Action、Result、Result类型、拦截器组织为一个逻辑单元的方式,从而简化维护工作,提高了重用性,它也有抽象包,但抽象包中不能定义action
[b]三[/b]Action定义方式有三种
1. 标准的JavaBean作为定义
2. 实现Action接口
3. 继承ActionSupport
[b]四[/b]Action与Servlet通信的桥梁:
ServletActionContext从这个类中得到Servlet容器的上下文。
ServletActionContext提供获取Request、Response、Session、ServletContext的对象。
与Servlet不同,Action是多例的,每一次请求Struts2都为我们创建一个Action的实例
[b]五[/b]
在大型项目中,为了降低项目的复杂度,便于团队成员的分工协作,通常将项目划分为较小的模块,每个单独开发与管理。Struts2也支持这种“分而治之”的策略,为每一个模块提供一个配置文件。
struts.xml文件内容:
<struts>
<!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" /> -->
<package name = "default" extends = "struts-default" namespace="/test">
<global-results>
<result name = "index">/index.jsp</result>
</global-results>
<action name = "hello" class = "com.bjsxt.struts2.action.HelloWorldAction" method = "sayHello"></action>
<action name="default" class = "com.bjsxt.struts2.action.HelloWorldAction"></action>
<action name="bye" class = "com.bjsxt.struts2.action.HelloWorldAction" method="sayBye"></action>
</package>

<include file="struts-user.xml"></include>
<include file="struts-report.xml"></include>
</struts>
struts-report.xml文件内容:
<struts>
<!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" /> -->
<package name = "report" extends = "struts-default" namespace="/test">

</package>

</struts>
struts-user.xml文件内容:
<struts>
<!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" /> -->
<package name = "user" extends = "struts-default" namespace="/test">

</package>

</struts>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值