首页 > 代码库 > struts学习笔记(1)基本配置
struts学习笔记(1)基本配置
Struts2 学习笔记
吃透最简单的Helloword实例之后 ,接着再一一去研究 请求参数的接收与发送,参数的封闭,校验,result,struts2标签库这些最为核心的东西(其实这些也正是最常用的东西),经过这样的学习,应该领会了一些Struts2的流程,接着再去阅读相关文档去了解Strust2的拦截器设计思想(这叫先使用再体会的学习方法),接着可以做一些针对于自定义拦截器的实现来深化对Struts2的认识。此时,你已经达到企业中使用的级别了,接下来就可以玩一些SSh整合
一、基本配置
1.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>
2.struts.xml
默认放在src文件下
<!--package 类似java的包:用区分不同的请求 name:给包取的名字 (name属性为每个package设置一个唯一的标识,这个标识在所有的package定义中不能重复) namespace:与请求地址的对应,对于action配置进行逻辑划分 namespace="/" --http://localhost:8080/xxx/分部工程名/下的所有请求 namespace="/yy" --http://localhost:8080/xxx/yy分部工程名/下的所有请求 extends: 通过使用extends,你可以指定本package继承另外一个package的所有的配置 --!>
<package name="my" namespace="/" extends="struts-default"> <action name="helloworld" > <result>/index.jsp</result> </action> </package>
访问URL:localhost:8080/helloworld
3.action类
属性:name:是要处理的请求名
class:请求名所有对应的处理类
method:请求名所有对应的处理类中的方法(默认为excute)
<action name="hello" calss="xxx.xxx.xxxxaction" method="execute">
Struts2 中有3中方式
a.普通java类,定义execute()方法
public class xxxAction
b.实现Action接口,重写execute()方法
public class xxxAction implements Action
c.继承java类ActionSupport
public class xxxAction extentds ActionSupport
for example:
public class MyDefineAction extends ActionSupport{ @Override public String execute() throws Exception { return "success";//我们必须返回一个字符串给struts.xml识别 } }
对应struts2.xml 文件
<package name="my" namespace="/" extends="struts-default" method="execte"> <action name="hello" class="xxx.xxx.xxx.MyDefineAction> <result name="success">/index.jsp</result> </action> </package>
我们相应的可以在action中创建不同的method 实现不同的返回,到达不同的.jsp
不同action:name对应不同的method
三种方式: 配置struts.xml中的 action
a. 普通配置 域名为 http://localhost:8080/Test/register(login)
<package name="my" namespace="/" extends="struts-default"> <action name="login" class="com.yc.action.UserAction" method="login"> <result name="success">login.jsp</result> </action> <action name="register" class="com.yc.action.UserAction" method="register"> <result name="success">register.jsp</result> </action> </package>
b. 动态配置 url为: http://localhost:8080/Test/user!register
<!-- 动态配置 必要设置: struts.enable.DynamicMethodInvocation value=http://www.mamicode.com/"true"--> >c. 约定配置 采用通配符 url为: http://localhost:8080/Test/user_register
<action name="*_*" class="com.yc.action.{1}Action" method="{2}"> <result name="success">/{2}.jsp</result> </action>
d.当在对应的action中没有匹配对result,那就到global-result去匹配<global-results> <result name="fail">/index.jsp</result> </global-results><!--注意:global-results这个标签只能放在package中action的前面-->