主要作用:将请求与页面区分开
配 置:
下载struts 2.0,在安装路径D:\项目学习\三大框架视屏\struts-2.3.24-all\struts-2.3.24\apps 中解压struts2-blank.war
将目录D:\项目学习\三大框架视屏\struts-2.3.24-all\struts-2.3.24\apps\struts2-blank\WEB-INF\lib下的所有jar包复制到WebRoot->WEB-INF->lib中
显示提示:(按下Ctrl+/)
在目录D:\项目学习\三大框架视屏\struts-2.3.24-all\struts-2.3.24\lib下解压struts2-core-2.3.24.jar
在myeclipse中如下配置:(location为解压后struts2-core-2.3.24中struts-2.3.dtd)
web.xml的配置:
在目录D:\项目学习\三大框架视屏\struts-2.3.24-all\struts-2.3.24\apps\struts2-blank\WEB-INF下打开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>
粘贴到myeclipse的web.xml </web-app>的上方
struts.xml的配置:
在解压完的文件夹内找到struts.xml,路径为D:\项目学习\三大框架视屏\struts-2.3.24-all\struts-2.3.24\apps\struts2-blank\WEB-INF\src\java
将struts.xml复制进web project的src目录下,将其struts中的内容全部注释,然后再改写其中内容
struts.xml的改写:
<struts></struts>中的内容:
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="hello" class="..." method="...">
<result name="SUCCESS">
/Hello.jsp
</result>
</action>
</package>
①namespce即为访问的action前面的地址,访问此页面网址为http://localhost:8080/struts2/hello(.action),等价于http://localhost:8080/struts2/Hello.jsp
namespace默认为"",即action前面无论加什么都可以访问
②一般packagename与namespace相同,方便区分,例:<package name="hello" namespace="/hello" extends="struts-default">
此时访问的页面为http://localhost:8080/struts2/hello/hello.action
③ 在<action name="user" class="com.struts2.add.AddAction" method="add">中,class是调用com.struts2.add包中的AddAction.java,method是调用的方法
method也可以不用写,即动态方法调用(DMI)
src中的java程序:
要继承ActtionSupport类,实现返回值为String的方法:
public String add(){
return SUCCESS;
}
通配符:
优点:只用配置一次struts.xml,只要按约定命名,就无需再改动
<action name="*_*" class="com.struts2.add.{1}Action" method="{2}">
<result>/{1}_{2}_success.jsp
</result>
</action>
①*可任意匹配,{i}为第 i 个 * 的值,{1}Action为类名,{1}应大写
传值:
在调用的方法中写:
public class AddAction extends ActionSupport {
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String execute(){
msg="what are you 弄啥嘞?";
return SUCCESS;
}
在jsp页面写:
${msg}