<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>url-pattern约定熟成只写/*,没必要写*.action
<package name="default" namespace="/" extends="struts-default"> <action name= "hello"> <result> /Hello.jsp </result> </action> <span style="white-space:pre"> </span></package>namespace="/"和访问的路径意义对应;
b)选择key type为URI
c)key: http://struts.apache.org/dtds/struts-2.0.dtd
d)location: 对应的dtd文件,位于struts-core包中,解压开,指定相应位置,如D:/Program Files/struts-2.1.6 \lib\struts2-core-2.1.6\struts-2.0.dtd<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>->参考struct.xml -> 查找对应的namespace -> 查找对应的action -> 查找对应的result -> 反馈result -> 请求Forwad给目标文件
<package name="default" namespace="/" extends="struts-default"> <action name="index"> <result> /index.jsp </result> </action> </package>6、namespace决定了action的访问路径,默认为"",可以接收所有路径的action
<constant name="struts.devMode" value="true" /> <package name="front" extends="struts-default" namespace="/front"> <action name="index"> <result>/Namespace.jsp</result> </action> </package> <package name="main" extends="struts-default" namespace=""> <action name="index"> <result>/Namespace.jsp</result> </action> </package>struct.xml分析
<constant name="struts.devMode" value="true" /> <package name="front" extends="struts-default" namespace="/"> <action name="index" class="com.struts2.front.action.Index"> <result name="success"> /ActionIntroduction.jsp </result> </action> </package>具体Action的实现可以是一个普通的java类,里面有public String execute方法即可或者实现
package com.bjsxt.struts2.front.action; import com.opensymphony.xwork2.Action; public class IndexAction1 implements Action { @Override public String execute() { return "success"; } }配置分析:
ActionSupport源码
public String execute() throws Exception { return SUCCESS;}
最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法
package com.struts2.front.action; import com.opensymphony.xwork2.ActionSupport; public class IndexAction2 extends ActionSupport { @Override public String execute() { return "success";} }
原因:ActionSupport内部已经为我们封装了许多可以直接调用的方法,在子类中可以直接使用。
以上内容是基于马士兵老师的教程整理而成的。
【web开发学习笔记】Structs2 Action学习笔记(一),布布扣,bubuko.com
【web开发学习笔记】Structs2 Action学习笔记(一)
原文:http://blog.csdn.net/licong_carp/article/details/36870919