struts2学习笔记二--准备struts2的学习和开发环境

准备struts2的学习和开发环境
1 导包
2 参照开发包自带的例子在web.xml文件中配置
3 参照开发包自带的例子编写Action类和配置struts.xml文件
<struts>
<package name="demo" namespace="/hello/word">
<action name="test" class="cn.yue.struts2Demo.web.action.TestAction" method="sayHello">
</action>
</package>
</struts>


public class TestAction {
public String sayHello()
{
try {
ServletActionContext.getResponse().getWriter().println("hello word!");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}


定位包 只要一旦追溯到了一个最匹配的上层包名,不管这个包中是否存在要访问的Action,都不会再追溯更上层的包名了。
定位action 一旦定位到了某个包下,接着就会在这个包中查找action。由于struts会追溯上层包的特点,所以,用某个包的名称空间的子目录形式也可以访问到该包中的Action,前提是该子目录不存在对应的名称空间。
namespace属性可以设置为空字符串””,即为默认名称空间,如果struts2定位到的包名中不存在当前要访问的Action ,struts2接着还会在默认名称空间寻找该Action,只有在默认名称空间的包名中还没找到该action时,才报错action找不到的错误。


配置结果视图与视图工作原理
1 局部视图:在<action>元素中配置<result>元素
<action name="test" class="cn.yue.struts2Demo.web.action.TestAction" method="sayHello">
<result name="success">
<param name="location">/WEB-INF/pages/view.jsp</param>
</result>
</action>
2 全局视图:在<global-results>元素中配置<result>元素
<global-results>
<result type="plainText">
<param name="location">/WEB-INF/pages/view.jsp</param>
</result>
</global-results>
3 自定义一个视图类型

public class WelcomeResult implements Result {
private static final long serialVersionUID = -6454914993165364620L;
private String group="yue";
public void setGroup(String group) {
this.group = group;
}
public void execute(ActionInvocation invocation) throws Exception {
ServletActionContext.getResponse().reset();
ServletActionContext.getResponse().getWriter().println(group+",welcome to you!");
}
}
<action name="test3" class="cn.yue.struts2Demo.web.action.TestAction" method="sayHello">
<result name="success" type="welcome">
<param name="group">zhenhua</param>
</result>
</action>


<!-- 自定义视图 -->
<result-types>
<result-type name="welcome" class="cn.yue.struts2Demo.web.result.WelcomeResult"></result-type>
</result-types>


常量配置
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml


<constant name=“struts.action.extension” value=“do,go”/>

重加载xml文件
tomcat 设置context添加<Context reloadable="true">
struts.configuration.xml.reload,

default.properties文件中 struts.devMode 设为true 在struts.xml中配置 <constant name="struts.devMode" value="true"></constant>

 

Struts.xml中的默认值与更多配置细节
1 在根元素<struts>下可以使用include子元素引入其他的配置文件
2 <action>元素的method属性可以不设置,默认为execute;class属性可以不设置,默认为ActionSupport。
3 <result>元素的type属性和name属性都可以不设置,默认值分别为dispatcher和success
4 在<package>元素下配置<default-action-ref>子元素,用于说明在该包下不存在的action路径映射,都可以统交给一个默认的<action>元素去处理。
5 在<package>元素下的<default-class-ref>子元素,用于配置该包下的<action>元素的class属性的默认值,前面说的默认值为ActionSupport正是通过这个元素配置的。
6 使用Config Browser Plugin浏览已经装载的配置信息和列出各个包名称空间下的所有Action的访问链接。

你可能感兴趣的:(struts)