第三章 Struts2配置详解

3.1 Struts2执行过程
    1、获取Struts2资源
    2、在应用程序中导入Struts2的类库
    3、在web.xml中配置StrutsPrepareAndExecuteFilter
    4、编写Action类进行配置
    5、配置返回结果与物理视图资源的关系
    6、编写结果视图
    
        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> 

Action类
            核心控制器(Filter):用于拦截用户的请求 ,对请求进行处理
            业务控制器(Action):调用相应的Model类实现业务吃了,返回结果
        Struts.xml

   <struts>
            <constant name="struts.ui.theme" value="simple"></constant>
            <package name="default" namespace="/" extends="struts-default">
            <action name="login" class="struts.LoginAction">
                <result name="success" type="dispatcher">guanli.jsp</result>
                <result name="input">login.jsp</result>
            </action>
            </package>
            </struts>

Result
            1、当web容器接收到请求后,将请求交由在web中配置的Struts2框架的控制器StrutsPrepareAndExecuteFilter(控制器)
            2、由StrutsPrepareAndExecuteFilter确定请求对于的Action(业务控制器)
            3、框架根据Action返回的结果字符串,由StrutsPrepareAndExecuteFilter选择对于的result,将结果呈现给用户
            Action只负责返回结果,不与视图关联
            
    Struts2配置文件
        处理中文乱码:
            <constant name="struts.il8n.encoding" value="UTF-8"></constant>
        Struts2的包:
            <package name="default" namespace="/" extends="struts-default">
                name:必需且唯一,指定包的名称
                extends:指定要扩展的包
                namespace:可选,定义包中的Action的命名空间
        Struts-default.xml:Struts2的默认配置文件,提供默认值,自动加载
        struts-plugin.xml:Struts2插件使用的配置文件
3.2    Action的配置
    作用:
        1、封装工作单元
        2、数据转移场所
        3、返回结果字符串
    method属性:
        例:

<action name="login" class="struts.LoginAction" method="login">
            <result name="success" type="dispatcher">guanli.jsp</result>
            <result name="input">login.jsp</result>
            <result name="error">error.jsp</result>
 </action>

调用login.action之后,执行login方法,根据返回结果字符串返回结果视图
    Action动态方法调用

 <action name="Struts" class="struts.StrutsAction">
            <result name="login">guanli.jsp</result>
            <result name="Guanli">guanli.jsp</result>
            <result name="Details">details.jsp</result>
            <result name="Fabu">guanli.jsp</result>
            <result name="Update">guanli.jsp</result>
            <result name="Register">login.jsp</result>
        </action>

这种方法的使用可以减少xxxAction的数量,但是会带来安全隐患
                 使用方法:Struts!login.action
    通配符:

 <action name="*house" class="struts.StrutsAction" method="{1}">
            <result name="success">{1}.jsp</result>
            <result name="input">{1}.jsp</result>
            <result name="error">error.jsp</result>
        </action>

调用方法:loginhouse.action,配置该action元素时,还指定了method属性
    默认的Action:

<default-action-ref name="defaultAction">
            <action>
                <result name="error">error.jsp</result>
            </action>
        </default-action-ref>

3.3 Result的配置
    常用结果类型
        dispatcher:result默认结果类型,以转发方式请求指定的视图资源,请求中包含的数据信息依然存在
        redirect:以重定向方式请求指定的视图资源,请求中包含的数据信息将丢失
        redirectAction:以重定向方式请求指定的视图资源,请求中包含的数据信息将丢失,主要重定向到另一个Action
    动态结果
        通过指定方法返回的值,指定执行哪一个Action(业务控制器)
    全局结果

<struts>
        <constant name="struts.ui.theme" value="simple"></constant>
        <package name="default" namespace="/" extends="struts-default">
            <global-result>
                <result name="error">error.jsp</result>
                <result name="login" type="redirect">login.jsp</result>
            </global-result>
        </package>
        </struts>
时间: 2024-10-06 17:00:37

第三章 Struts2配置详解的相关文章

【SSH2(理论篇)】--Struts2配置详解

上篇博客讨论了SSH2框架模型,在开发过程中发现SSH2的开发模型其实类似于经典的三层模式,在每一层中分别添加了不同的框架,显示层使用的是Struts2进行配置的,业务逻辑层使用的是Spring配置,数据持久层则采用的是Hibernate,开发模式简单易懂,接下来将会分别从三层着手讨论每一层的运行内容. 一.Struts体系简介 struts,是Apache软件基金会(ASF)赞助的一个开源项目,它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-V

Struts2配置详解_配置Action

Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法. public String execute() throws Exception Struts2并不是要求所有编写的action类都要实现Action接口,也可以直接编写一个普通的Java类作为action,只要实现一个返回类型为String的无参的public方

Struts2配置详解

1.Namespace 1)namespace决定action的访问路径,默认为“”,可以接受所有路径的Action:       2)namespace可以写为/,或者/xxx,或者/xxx/yyy,对应action访问路径为/index.action,/xxx/index.action或者/xxx/yyy/index.action       3)namespace最好也用模块来进行命名 当url中输入不存在的Action的时候,定向到默认的Action 1.1 struts2配置详解 1.

Struts2 配置详解

1. web.xml 此文件的配置可以参看struts2的示例文档 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filte

Log4j(三)—— Log4j配置详解

appender的详细配置: log4j.appender.appenderName = classNameappenderName:自定义appderName,在log4j.rootLogger设置中使用:className:可设值如下: org.apache.log4j.ConsoleAppender(控制台) org.apache.log4j.FileAppender(文件) org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件) org

SpringMVC实战(三)-Controller配置详解

本篇将介绍SpringMVC中如何为Controller配置处理URL路径.请求参数等等. RequestMapping注解 作用: Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求. 在控制器的类定义及方法定义处都可标注@RequestMapping 类定义处:提供初步的请求映射信息.相对于 WEB 应用的根目录 方法处:提供进一步的细分映射信息.相对于类定义处的 URL.若类定义处未标注 @RequestMapping,则方法处标记的 U

第三章 ServerSpcket用法详解

3.1 构造ServerSocket ServerSocket的构造方法如下: 1 ServerSocket() 2 //Creates an unbound server socket. 3 4 ServerSocket(int port) 5 //Creates a server socket, bound to the specified port. 6 7 ServerSocket(int port, int backlog) 8 //Creates a server socket an

Struts2学习笔记二 配置详解

Struts2执行流程 1.简单执行流程,如下所示: 在浏览器输入请求地址,首先会被过滤器处理,然后查找主配置文件,然后根据地址栏中输入的/hello去每个package中查找为/hello的namespace,然后在包下寻找名为HelloAction的action,反射创建控制器HelloAction对象,调用method指定的方法hello,拿到返回值“success”,去result的配置节找success对应的页面(hello.js),呈现给用户. 2.Struts的架构,具体参考这里

logback -- 配置详解 -- 三 -- &lt;encoder&gt;

附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appender> logback -- 配置详解 -- 三 -- <encoder> logback -- 配置详解 -- 四 -- <filter> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --