Struts2的配置:
一、 新建web项目
二、 导入jar包(框架就是使用别人提供的东西,导入)【把空实例里的jar包拿过来就行】
1、下载jar包的网址:
https://struts.apache.org/ 官网
https://archive.apache.org/dist/struts/ 历史版本的包。
注:jar包若放在自己建的1号lib下是无法发布到tomcat上的。如下图:
三、编写web.xml文件——(配置struts2的前端控制器也叫分发器,过滤器)
1 <filter> 2 <filter-name>struts2</filter-name> <-- name可以随便写--> 3 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 4 </filter> 5 <filter-mapping><!--映射--> 6 <filter-name>struts2</filter-name> 7 <url-pattern>.action</url-pattern> <!-- 所有.action 结束的请求都会送到处理类--> 8 </filter-mapping>
filter-class的路径内容:
四、在src下,添加strut2的配置文件,名称为strurs.xml。(必须在src下,且名字必须为struts2,不能变。)
作用:配置action,使请求的url映射到一个Java的处理方法上。
● 所有的配置文件都有这句:
<?xml version="1.0" encoding="UTF-8"?>
● structs.xml的头文件要和(核心包下的)struts-default.xml的头文件相同。
1 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd
五、编辑业务处理类
建包action和类。structs2中所有的业务方法都是public;所有的返回值都是String;所有的业务方法都没有参数。
1 <package name="loginMang" extends="struts-default" namespace="/"> 2 <action name="loginUser" class="com.soft.action.LoginAction" method="login"> 3 <result name="succ">/login/loginSucc.jsp</result> 4 <result name="fail">/login/loginFail.jsp</result> 5 </action> 6 </package>
1、package 分模块管理(用户模块,系统模块等等)
1 <package name="loginMang" extends="struts-default" namespace="/">
name :自定义,但是不能重复,在一个项目中唯一
extends: 继承 必须写,必须直接继承或者间接继承struts-default{是struts2的核心代码中struts-default.xml中的包名},struts2的功能才能用起来;有的时候一个passage包继承别的passage包,间接继承了struts-default
namespace: 命名空间 和url请求直接相关(action中的result的如果配置相对路径,相对此路径,建议配置绝对路径,一般配置绝对路径)
eg: / url请求为/hello.action /user url请求为/user/hello.action
2、action url和处理类的方法进行映射
1 <action name="loginUser" class="com.soft.action.LoginAction" method="login">
name: 为请求名称 不加后缀
class: 处理类的完全限定名称(完全限定名称:包名+类名),如果不配置由默认类处理(默认类 com.opensymphony.xwork2.Actionsupport,其中的execute方法)。
method:原来servlet要调用多个函数,要传值,eg:对比是删除还是添加,选择执行函数。而struts2解决了这个问题,直接在action中的method中指定就可以。方法名可以自定义,默认为execute()。
为了方便,name的名字通常和method一致。
3、result
1 <result name="succ">/login/loginSucc.jsp</result>
result:结果集,name结果集名称,和处理方法的返回值匹配,默认为success,可以自定义。
注:默认提供了5个返回值
Action.SUCCESS “success” 执行成功,跳转到另一个视图
Action.NONE “none” 执行成功,不需要视图显示
Action.ERROR “error” 执行失败,显示失败页面
Action.INPUT “input” 要执行该action,需要更多的输入条件
Action.LOGIN “login” 需要登陆后太能执行
type:指定响应结果类型
dispatcher:转发,默认的,地址不变
redirect 重定向。
redirectActioon:重定向到action。 eg;在查询列表中删除,删除之后还要跳到查询action
result的值:为跳转页面,不加/是相对地址,相对namespace路径,一般用绝路径