Struct2应用开发步骤

来源:互联网 发布:w7怎么禁止装软件 编辑:程序博客网 时间:2024/05/16 07:08
1、创建web应用project,将Struts2相关联库文件拷到web应用下WebRoot/WEB-INF/lib下,有如下一些commons-lang3-3.1.jar、commons-fileupload-1.3.1.jar、commons-io-2.2.jar、freemarker-2.3.19.jar、javassist-3.11.0.GA.jar、ognl-3.0.6.jar、struts2-core-2.3.16.3.jar、xwork-core-2.3.16.3.jar。
2、在web.xml文件中定义核心Filter来拦截用户请求。在web应用web.xml文件中添加如下配置:
  <filter>
       <filter-name>struct2</filter-name>
       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <!-- Filter-mapping -->
  <filter-mapping>
    <filter-name>struct2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
3、定义包含表单数据的jsp,注意定义的jsp文件放在WebRoot/目录下
4、定义处理用户请求的Action类
        注意Action类继承ActionSupport类,在Action类中可以重写execute方法,或者自定义方法(必须在struts.xml文件中添加"method=自定义方法")。
5、配置Action,也是配置struts.xml文件。注:struts文件最初定义在工程名/src/目录下,在MyEclipse下之后会自动复制到WEB-INF/classes路径下。
    struts.xml文件配置如下:
    <?xml version="1.0" encoding="UTF-8" ?> 
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
  <struts>
    <package name="struts2" extends="struts-default">
    <action name="login" class="org.lq.app.action.LoginAction">
        <result name="success">/result.jsp</result>
        <result name="login">/login.jsp</result>
    </action>
    </package>
</struts>
Struts2中有5个static常量分别是:
ERROR INPUT LOGIN NONE SUCCESS
例如若在execute中返回的是return SUCCESS,则返回的是return "success"字符串。在struts.xml 中写上对应的“success”
<result name="success">/x.jsp</result>
注意1:ERROR对应的是"error"字符串,INPUT对应的是"input",LOGIN对应的是"login",NONE对应的是"none"。
注意2:当某个包指定了命名空间后,该包下所有的Action处理的URL应该是命名空间+Action名。
6、注意:在jsp页面使用struts标签时,注意需要在jsp文件中显示声明"<%@taglib prefix="s" uri="/struts-tags"%>"
7、若希望将页面处理结果信息在下一个页面输出,那么可以在Action类中增加一个tip属性,并为该属性提供对应的settter和getter方法,
一旦在Action中设置了tip属性的值,就可以在下一个页面中使用Struts2标签来输出该属性的值。在JSP页面中输出tip属性值的代码片段如下
<s:property value="tip"/>

8、Action访问Servlet API
(1)Struts2提供了ActionContext类
        1)Object get(Object key);
        2)Map getApplication();
        3)static ActionContext ggetContext();获取系统的ActionContext实例。
        4)Map getParameters();
        5)Map getSession();
        6)setApplication(Map application);
        7)void setSession(Map session)
(2)Action直接访问Servlet API
        1)ServletContextAware接口:实现该接口的Action可直接访问Web应用的ServletContext实例。要求实现方法:public void setServl
etContext(ServletContext context);
        2)ServletRequestAware接口:可直接访问用户请求的HttpServletRequest实例。要求实现方法:public void setServletRequest(Htt
pServletRequest request);
        3)ServletResponseAware接口:可直接访问服务器响应的HttpServletResponse实例。仅要求实现方法:public void setServletResp
onse(HttpServletResponse response);但是即使获得了HttpServletResponse对象,也不要尝试直接在Action中对客户端生成响应。
(3)使用ServletActionContext访问Servlet API
        1)static PageContext getPageContext():取得Web应用的PageContext对象。
        2)static HttpServletRequest getRequest():取得Web应用的HttpServletRequest对象。
        3)static HttpServletResponse getResponse():HttpServletResponse对象。
        4)static ServletContext getServletContext():ServletContext对象。
9、struts2的异常处理机制是通过在struts.xml文件中配置<excepgion-mapping.../>元素完成。配置该元素时,需要指定如下两个属性。
        exception:指定该异常映射所设置的异常类型。
        result:此属性指定Action出现该异常时,系统返回result属性值对应的逻辑视图名。
    根据<exception-mapping .../>元素出现位置的不同,异常映射又可分为如下两种。
        局部异常映射:将<exception-mapping .../>元素作为<action .../>元素的子元素配置。
        全局异常映射:将<exception-mapping .../>元素作为<global-exception-mappings>元素的子元素配置。

    




0 0
原创粉丝点击