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

来源:互联网 发布:云计算对oa系统的影响 编辑:程序博客网 时间:2024/04/30 12:45
准备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的访问链接。

原创粉丝点击