业务控制器:
1.开发Action接口
2.继承ActionSupport(推荐)
3.普通的Java类:model
实现的是处理数据的作用,处理页面发送给服务器的数据
将服务器数据转移到页面的桥梁
充当的是执行哪个数据页面或是指向哪个action
开发方式:
直接开发,普通的Java类
使用接口
关于struts.xml中的配置问题
意义;指的是action处理完后的配置
比如:
<action name="userlist" class="libraryAction.UserAction"> <result name="success">/index.jsp</result> </action> result
result的属性:
name 是返回的字符串,是action匹配后的
type:从action到页面的转发方式
默认情况下是转发:dispatcher
类似于servlet中request.getRequestDispatcher的方法,(数据可以通过request进行数据转发的)
但请求的路径未发生改变
type=“redirect” 客户端的重定向,路径发生了改变,但是,request里的数据是无法进行转发的
转到其他action
redirectAction`
result name="success" type="redirectAction">
<param name="actionName">
</param>
<param name="namespace">
</param>
</result>
Package元素
struts2里面package的作用
package是将action按照不同的功能组织起来,方便使用
name属性是必需且唯一的,用于指定包的名称,
extends 指定要扩展的包 使用默认即可
namespace s属性定义改包中action的命名空间,为可选属性,注意:除非有令人信服利用,自定义的包应该总是扩展struts-default包
<package name="admin" namespace="/admin" extends="struts-default">
<action name="userlist" class="libraryAction.UserAction">
<result name="success">/index.jsp</result>
</action>
</package>
Action元素之method属性
要使用method动态方法需要将其设置为true
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
method属性是为了针对同一个action里的,那么为了减少action的数量,是指的创建的Action.java
开发的技术要点:
1.允许在struts.xml中配置,允许使用动态方法
2.需要在action的类中创建方法,方法的返回值是Success
3.在struts.xml里面配置action,但要保证action的名字不能重复
注意:访问路径格式:
/namesapce/action的名字!方法名.action
如:
<action name="user_delete" class="libraryAction.UserAction" method="delete">
<result name="">/deleteuser.jsp</result>
</action>
```java
<action name="user_delete" class="libraryAction.UserAction" method="delete">
<result name="">/deleteuser.jsp</result>
</action>
<action name="user_detail" class="libraryAction.UserAction" method="detail">
<result name="">/detailuser.jsp</result>
</action>
<action name="user_search" class="libraryAction.UserAction" method="search">
<result name="user_search">/searchuser.jsp</result>
</action>
http://localhost:8080/library/admin/user_delete!delete.action
通配符配置实例
通配符的配置是为了减少在struts.xml的开发时,所采用的action的配置
在开发的时候使用的前提
大家要约定一个规则
如action的方法
user_方法名
当action成功处理后,返回的success页面的名字:user方法名.jsp
```java
<action name="user_*" class="libraryAction.UserAction" method="{1}">
<result name="">/{1}user.jsp</result>
</action>
约定配置方法{1}相当于*
注意;* 就是 从左到右的占位符,这个占位符一般就是在action的name中配置,后面表示的占位的内容就用(占位符的位置),占位符的位置是从1开始