Struts2 学习笔记java
吃透最简单的Helloword实例以后 ,接着再一一去研究 请求参数的接收与发送,参数的封闭,校验,result,struts2标签库这些最为核心的东西(其实这些也正是最经常使用的东西),通过这样的学习,应该领会了一些Struts2的流程,接着再去阅读相关文档去了解Strust2的拦截器设计思想(这叫先使用再体会的学习方法),接着能够作一些针对于自定义拦截器的实现来深化对Struts2的认识。此时,你已经达到企业中使用的级别了,接下来就能够玩一些SSh整合web
1、基本配置
1.web.xml配置apache
<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文件下
app
<!--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/helloworldjsp
3.action类
属性:name:是要处理的请求名
class:请求名全部对应的处理类
method:请求名全部对应的处理类中的方法(默认为excute)ide
<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 ActionSupporturl
for example:spa
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="true"--> <action name="user" class="com.yc.action.UserAction02"> <result name="login_success">/login.jsp</result> <result name="register_success">/register.jsp</result> </action>
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的前面-->