Struts2学习之常用配置及action接收参数
来源:互联网 发布:玫瑰花淘宝 编辑:程序博客网 时间:2024/05/29 08:43
在http://blog.csdn.net/qq_21231581/article/details/51838812中我们完成了Struts2框架的准备工作,并且顺利演示了一个小栗子,本篇文章我会继续了解Struts2的常用配置,好了开始吧:
1.Struts.xml文件的基本内容
1.全局属性
2.用户请求与action响应之间的关系
3.action可能用到的参数和结果
4.各种拦截器的配置
2.action类中访问servlet的API(request,response,session等)
方式1.ActionContext(推荐使用)
ActionContext.getContext()可获得该对象,同时其有方法如:
1、public Object get(Object key):取得HttpServletRequest中key的值;
2、void put(String key,Object value):设置HttpServletRequest中key的值为value;
3、public Map getApplication():获取封装了ServletContext的Map对象;
4、void setApplication(Map application):设置ServletContext实例;
5、Map getParameters():类似于HttpServletRequest中的getParametersMap方法;
6、public Map getSession():获取封装了HttpSession的Map对象;
7、void setSession(Map session):直接传入一个Map实例,将该Map实例里的key-value对转换为session的属性名和属性值;;
方式2.实现Aware接口(不推荐使用)
方式3.ServletActionContext(推荐使用),有如下静态方法
1.getPageContext();
2.getRequest() ;
3.getResponse();
4.getServletContext()。
3.动态方法调用
步骤一:在Action类中创建相关的动态方法,形如:
public class DemoSupport extends ActionSupport {@Overridepublic String execute() throws Exception {System.out.println("Hello struts2!");return this.SUCCESS;}public String loadAll() {System.out.println("Hello Dynamic Method!");return "loadAll";}}
步骤二:创建与该方法相对应的视图,即JSP界面
我已经创建名为loadAll.jsp文件
步骤三:在struts.xml文件中相应配置
配置方法有三种:
方法一:在action节点中直接配置一个result节点,形如:
<!-- 这是第一种动态方法调用方式 class:对应的Action类路径 method:对应创建的方法名<span style="font-size:14px;"><span style="font-size:14px;"><span style="font-size:14px;"><span style="font-size:14px;"><span style="font-size:14px;"></span></span></span></span></span><pre name="code" class="html"> name:url中访问Action的路径名--><action name="load" class="Action.DemoSupport" method="loadAll"><!-- 对应的JSP视图 --><result>/loadAll.jsp</result></action> 弊端:一个action类中动态方法多的话比较繁琐
方法二:感叹号配置使用(不推荐),有兴趣的可百度,在此不做赘述。
方法三:通配符配置使用(官方推荐)“_*”
<action name="demo_*" method="{1}" class="Action.DemoSupport"> <result>/result.jsp</result> <!--name值与相应的动态方法返回结果相一致 --> <result name="loadAll">/loadAll.jsp</result> </action>
说明:action节点的name属性中的“*”对应method的{1},如果有第二的“*”则对应的{2},以此类推
url为http://.../demo_loadAll.action,则loadAll.JSP就会显示在浏览器界面
4.指定多个配置文件(Struts.xml分解)
步骤一:新建一个与struts.xml相同结构的xml文件
步骤二:在struts.xml中如下配置
<include file="sys.xml"></include>由此,一些配置即可写入到同目录下(在其他目录下创建则补全相对路径)的sys.xml5.默认action设置
6.修改action的后缀名
首先,得保证web.xml中struts的map-partern是/*(之前我被这个玩了一小会儿)
之后,在struts.xml中的struts节点下添加如下
<!-- value即后缀,默认为action,若设置为空则如下,其他的话直接写入配置 --><constant name="struts.action.extension" value=","
7.Action类接收参数
方法一:使用Action的属性接收参数:在Action类中定义属性,创建getter/setter:形如:
public class DemoSupport extends ActionSupport {private String username = "";public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}......public String loadAll() {System.out.println(this.username);System.out.println("Hello Dynamic Method!");return "loadAll";}}但是这个方法不适合用在参数较多的地方
方法二:使用DomainModel接收参数:
将较多的字段封装成Bean,之后在Action中新建一个该成员对象,并给出getter/setter
并且,在JSP中需要加上成员对象名去写参数:
<form action="sys/login.action" method="post"> <input type="text" name="user.username"> <input type="password" name="user.password"> <input type="submit" value="submit"></form>接收使用参数使用对象的getter/setter
方法三:使用ModelDriven接收参数:
将较多的字段封装成Bean,之后在Action中新建一个该成员对象
将对应的Action类实现ModelDriven接口给出对象Bean的泛型,实现其getModel方法
public class DemoSupport extends ActionSupport implements ModelDriven<User>{private User user;...@Overridepublic User getModel() {return user;}}
接收使用参数使用对象的getter/setter
- Struts2学习之常用配置及action接收参数
- struts2 之 action接收参数
- Struts2学习之Action接收参数方法一(属性接收参数(属性驱动))
- Struts2学习之Action接收参数方法二(用DomainModel接收参数(模型驱动))
- struts2之Action请求参数接收方式
- Struts2之action接收请求参数
- Struts2学习---基本配置,action,动态方法调用,action接收参数
- Struts2 Action接收表单参数
- struts2学习之---配置Action
- 道听途说Struts2之7:使用Action属性接收参数
- Struts2学习笔记系列之参数接收
- Action接收参数之---ModelDriven
- struts2 Action专题之三:action的属性接收参数的方式
- Struts2中Action接收参数的方法
- Struts2中Action接收参数的方法
- Struts2中Action接收参数的方法
- Struts2 Action属性接收参数中文问题
- struts2用action属性接收参数
- leetcode No36. Valid Sudoku
- hdu5360(优先队列)
- 一步一步演示神经网络回馈算法过程
- PHP面向对象总结
- Android来电监听和去电监听
- Struts2学习之常用配置及action接收参数
- 是这么设计Android项目架构的
- Android布局(LinearLayout)
- python urllib库使用
- 安装laravel及其初步使用
- 设计模式之观察者模式
- 各种小程序:(运动员名次与谁是凶手等)
- 深入浅出聊Unity3D项目优化:从Draw Calls到GC
- Linux目录结构和常用命令